• Stars
    star
    425
  • Rank 102,094 (Top 3 %)
  • Language
    Vim Script
  • Created almost 11 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Yes, we do need another debugger plugin

INTRODUCTION

Screencast - https://vimeo.com/95775461

Vebugger is yet another debugger frontend plugin for Vim, created because I wasn't happy with the other debugger plugins I found. Vebugger currently supports:

  • Tracking the currently executed command in the source code
  • Debugger flow commands - step-in, step-over, step-out and continue
  • Breakpoints management
  • Evaluating expressions in the current executed scope
  • Messing with the program's state (changing values, calling functions)

Vebugger is built as a generic framework for building frontends for interactive shell debugger, and comes with implementations for:

  • GDB - doesn't need introduction...
  • LLDB - debugger based on LLVM for C-family languages
  • JDB - a Java debugger
  • Mdbg - a .NET debugger(Windows only)
  • PDB - a Python module for debugging Python scripts
  • RDebug - a Ruby command line option for debugging Ruby scripts
  • NInspect - node inspect for using node.js with the inspect protocal (tested with node.8)

Other implementations can be added with ease, and I will accept pull requests that add such implementations as long as they use Vim's |license|.

Vebugger is built under the following assumptions:

  • While command line debuggers share enough in common to make the creation of a framework such as Vebugger possible, the differences between them are too great to be expressed with regular expression. To support them all at least some code has to be written.
  • Unlike IDE users, Vim users tend to understand the tools that operate behind the scenes. While Vebugger automates the common features, it allows you to "open the hood" and interact with the debugger's shell directly so you could utilize the full power of your debugger.
  • I have no intention to aim for the lowest common denominator. If one debugger has a cool feature I want to support, I'll implement it even if the other debuggers don't have it.

Vebugger is developed under Linux. It doesn't work properly under Windows due to lack of PTY support. I have neither plans nor means to support OSX, but I will accept pull requests that add OSX support.

The features that don't work under windows are:

  • RDebug.
  • Displaying output from the debugged program.

REQUIREMENTS

Vebugger requires the vimproc plugin, obtainable from: https://github.com/Shougo/vimproc.vim. Notice that vimproc needs to be built - there are instructions in the GitHub page.

In order for Vebugger to use a debugger, that debugger must be installed and it's executable must be either be in the PATH or set with a global variable (see help vebugger-configuration). In case of RDebug and PDB, which are used from the Ruby and Python modules, the interpreter(ruby or python) is the one that must be installed and in the path.

USAGE

Run help vebugger-launching from Vim to learn how to launch the debugger.

Run help vebugger-usage from Vim to learn how to operate the debugger.

More Repositories

1

rust-typed-builder

Compile-time type-checked builder derive
Rust
847
star
2

vim-merginal

Fugitive extension to manage and merge Git branches
Vim Script
277
star
3

bevy-tnua

A floating character controller for Bevy
Rust
203
star
4

bevy-yoleck

Your Own Level Editor Creation Kit
Rust
172
star
5

rust-smart-default

Rust macro for automatically generating default
Rust
126
star
6

vim-dutyl

Coordinate D tools to work together for you
Vim Script
79
star
7

vim-smile

The power of :smile available to everyone
Vim Script
30
star
8

bevy-egui-kbgp

Better keyboard and gamepad story for egui in Bevy
Rust
20
star
9

nvim-moonicipal

Task runner with focus on rapidly changing personal tasks
Lua
15
star
10

nu_plugin_skim

Rust
14
star
11

woab

Widgets on Actors Bridge - a GUI microframework for combining GTK with Actix
Rust
14
star
12

vim-yankitute

regex powered yank+substitute
Vim Script
13
star
13

vim-makecfg

Database of `makeprg` and `errorformat` settings
Vim Script
13
star
14

vim-casetrate

Modify the case of identifiers
Vim Script
11
star
15

vimConfig

My vim configurations
Lua
11
star
16

rust-powerset-enum

Rust
11
star
17

nvim-impairative

Lua
11
star
18

vim-omnipytent

The all powerful Pythonic task runner
Python
10
star
19

nvim-buffls

Add LSP functionality to specific Neovim buffers
Lua
9
star
20

bevy-yoetz

Rust
8
star
21

rust-inherent-pub

Rust
7
star
22

vim-erroneous

The right way to handle errors
Vim Script
7
star
23

nvim-channelot

Operate Neovim jobs from Lua coroutines
Lua
6
star
24

breeze.vim

Html navigation like vim-easymotion, tag matching, tag highlighting and DOM navigation
Python
6
star
25

nvim-days-without

Lua
6
star
26

nvim-blunder

Run commands in the builtin terminal and parse their output to the quickfix list
Lua
4
star
27

vim-integrake

Abuse Rake to do project chores around Vim
Ruby
3
star
28

vim-tabnine-completefunc

A TabNine completefunc for Vim
Vim Script
2
star
29

vim-terminalogy

Show and tell with a shell
Vim Script
2
star
30

sidekick-jam-entry-danger-doofus

Rust
1
star
31

kosem

Test wizard for semi-automatic testing
Rust
1
star
32

rust-poc-macro-emit-data

Rust
1
star
33

bevy-game-jam-1-entry

Rust
1
star