Я ознакомляюсь с некоторым кодом JRuby, и я хотел бы смочь поместить точку останова в код и работать (как обычно), от командной строки, имение его врывается в отладчик, когда это добирается до той точки. Есть ли что-то, что я могу вставить свой код, чтобы вынудить JRuby ворваться в отладчик?
Я попытался работать jruby -r debug foo.rb
(вместо обычного jruby foo.rb
), и затем устанавливая точку останова с b bar.py:98
, и затем продолжение. Но отладчик останавливается каждый раз, когда существует исключение, и, кажется, существуют многие из них, прежде чем это доберется до строки кода, которой я интересуюсь. Я хотел бы смочь поместить строку (строки) "врываться-отладчика" в свой код и работать jruby foo.rb
и имейте первое место остановки отладчика быть в той строке.
(т.е. я ищу эквивалент Ruby/JRuby import pdb;pdb.set_trace()
в Python.)
Вы можете попробовать Netbeans Ruby IDE, он имеет встроенный интерпретатор JRuby и инструменты отладки, и вы можете отлаживать визуально прямо в IDE.
Если использование IDE вам не подходит, просто установите de debug
gem в ваш дистрибутив JRuby и используйте его с помощью debugger
команды:
jruby -S gem install -l ruby-debug-base-0.10.3.1-java.gem
jruby -S gem install --ignore-dependencies ruby-debug
Команда debugger
теперь должна работать.
# test.rb
require 'rubygems'
require 'ruby-debug'
debugger
# run like this:
jruby --debug -S rdebug test.rb
Дополнительная информация на Netbeans wiki, rdebug wiki и JRuby wiki