Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
minimal ruby-debug-ide implementation for Vim based on vim-addon-async supporting breakpoints, stepping, ..
VimL
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autoload work towards thread support, first open buf, then set markers
plugin work towards thread support, first open buf, then set markers
README
addon-info.json fix, related work

README

Implement ruby-debug-ide19 client for Vim

tested with ruby-1.9.2 (1.9.3 causes errors with ruby-debug19)

STATUS: This is working:
- stepping
- breakpoints
- var view, watching, evaling, sending commands to debug process manually
- restarting

USAGE:
  ! Requires client-server, thus X or patched Vim (eg nox patch, see vim-addon-async)

  1)
  # this installs ruby-debug19 and linecache19 as well:
  gem install ruby-debug-ide19

  
  The following steps are only necessary until my changes are accepted
  upstream.

    # get my patched version of ruby-debug-ide19
    # I'm trying to feed these changes upstream
    # thus the next two commands will not be needed in the future.

    git clone -b json https://github.com/MarcWeber/ruby-debug-ide.git

    # make sure the files of my version are found first:
    RUBYLIB=`pwd`/lib:$RUBYLIB
    chmod +x bin/rdebug-ide
    PATH=`pwd`/bin:$PATH

  2) start Vim *after* having set PATH and RUBYLIB as shown above.
  :e test.rb (your script to be debugged)
  :RDStart
  You'll be asked for the script name to be debugged.
  Keep empty to connect to already running rdebug-ide process.
  You can start the server manually this way: rdebug-ide -J script.rb

  You can set breakpoints by F9 and add conditions in the RDEBUG_BREAK_POINTS_VIEW buffer
  
  Yes - there are some segfaults sometimes. Using latest mercurial dev version
  of Vim seems to fix most issues?
  
  3) hit F8 to start process
  
  6) step by F6 etc, see plugin/vim-addon-ruby-debug-ide.vim fun RDMappings

INSTALLATION:

dependencies:
  - see addon-info.json
  - socat executable (probably nc/netcat works as well)

Using VAM:
  add the name "vim-addon-ruby-debug-ide" to the list of plugins to be
  installed.

related work:
=============
github.com/MarcWeber/vim-addon-rdebug
An implementation which works with require 'debug' only.

https://github.com/astashov/vim-ruby-debugger
So why did it start this project? I want maintainable minimal and reusable code.
That's why this implementation is based on vim-addons-signs and vim-addon-async.
The code in this repo is about 500 LOC currently, not 2000.

It works nice and fast (but may crash vim sometimes), vim-ruby-debugger fails
pointing to the current breakpoint when using this mapping and hitting hit a
couple of times fast.
  noremap <F6>  :call ruby_debugger#load_debugger() <bar> call g:RubyDebugger.step()<CR>
The author told me it may happen occasionally - but did not for him. Well - I
want to work fast.

There are some more debugger script at www.vim.org which work with any
commandline related debugger or can be extended to work with those.
I haven't tried them. Example:
http://www.vim.org/scripts/script.php?script_id=1703

TODO / BUGS
  - upload json protocol implementation for ruby-debug-ide19 to my github page (done)
    and submit merge request when done (requested)
  - check which features of implementation are missing
    thread support (continue which one when hitting F8?)
  - implemennt support for enabling / disabling breakpoints ?
    (because lines in the breakpoint view can be commented this is not urgent)
  - somewhen fix the segfault which sometimes occurs in Vim


TROUBLE SHOOTING:

invalid option: -J, you have the wrong ruby-debug-ide19 version which does not
have my json protocl patch. See INSTALLATION.

You can't set breakpoints? Make sure you pass -J (json protocol) to rdebug-ide
Something went wrong with that request. Please try again.