2014-05-19 13:56:11 -04:00
|
|
|
INTRODUCTION
|
|
|
|
============
|
|
|
|
|
2014-05-19 16:45:04 -04:00
|
|
|
Screencast - https://vimeo.com/95775461
|
|
|
|
|
2014-05-19 13:56:11 -04:00
|
|
|
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, set-over, set-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 introdcution...
|
|
|
|
* JDB - a Java debugger
|
2014-05-22 15:26:42 -04:00
|
|
|
* Mdbg - a .NET debugger(Windows only)
|
2014-05-19 13:56:11 -04:00
|
|
|
* PDB - a Python module for debugging Python scripts
|
|
|
|
* RDebug - a Ruby command line option for debugging Ruby scripts
|
|
|
|
|
|
|
|
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 such a framework 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 the 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.
|
|
|
|
|
2014-05-22 10:25:26 -04:00
|
|
|
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.
|
2014-05-19 13:56:11 -04:00
|
|
|
|
|
|
|
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
|
2014-05-23 10:43:01 -04:00
|
|
|
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
|
2014-05-19 13:56:11 -04:00
|
|
|
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.
|