我应该在Ruby(JRuby)代码中放入什么来破解调试器?

我应该在Ruby(JRuby)代码中放入什么来破解调试器?,ruby,debugging,jruby,break,Ruby,Debugging,Jruby,Break,我正在熟悉一些JRuby代码,我希望能够在代码中放置一个断点并(像往常一样)从命令行运行,当它到达该点时,它会进入调试器。我是否可以在代码中添加一些东西来强制JRuby进入调试器 我试过运行jruby-r debug foo.rb(而不是通常的jruby foo.rb),然后用b bar.py:98设置断点,然后继续。但是每次出现异常时,调试器都会停止,而且在到达我感兴趣的代码行之前,似乎有很多异常。我希望能够在我的代码中插入“break-into-debugger”行,并运行jruby-foo

我正在熟悉一些JRuby代码,我希望能够在代码中放置一个断点并(像往常一样)从命令行运行,当它到达该点时,它会进入调试器。我是否可以在代码中添加一些东西来强制JRuby进入调试器

我试过运行
jruby-r debug foo.rb
(而不是通常的
jruby foo.rb
),然后用
b bar.py:98
设置断点,然后继续。但是每次出现异常时,调试器都会停止,而且在到达我感兴趣的代码行之前,似乎有很多异常。我希望能够在我的代码中插入“break-into-debugger”行,并运行
jruby-foo.rb
,使调试器的第一个停止位置位于该行

(也就是说,我正在寻找Ruby/JRuby的等价物,即Python中的导入pdb;pdb.set_trace()。

您可以尝试,它嵌入了JRuby解释器和调试工具,您可以直接在IDE中进行可视化调试。
如果您不能选择使用IDE,只需将de
debug
gem安装到JRuby发行版中,并通过
debugger
命令使用它:

  • 手动将ruby-debug-base-0.10.3.1-java.gem从下载到本地目录
  • 将Gem安装到JRuby Gem存储库中:
    jruby-sgem安装-l ruby-debug-base-0.10.3.1-java.gem
  • 安装ruby调试gem:
    jruby-sgem安装--忽略依赖项ruby debug
  • 调试器
    命令现在应该可以工作了

    # test.rb
    require 'rubygems'
    require 'ruby-debug'
    debugger
    # run like this:
    jruby --debug -S rdebug test.rb
    
    有关和

    我正在Windows 7上使用JRuby 1.7.3(1.9.3p385)的详细信息

    与人们所说的相反,JRuby似乎没有预装ruby调试版本。但是,我通过运行
    gem install ruby debug
    安装了它。我在代码中启动调试器,如下所示:

    require 'rubygems'
    require 'ruby-debug'
    debugger
    
    jruby --debug program.rb
    
    您应该在需要断点的任何地方调用
    调试器
    方法

    我这样运行代码:

    require 'rubygems'
    require 'ruby-debug'
    debugger
    
    jruby --debug program.rb
    
    --debug
    选项是可选的,但是如果没有它,您将收到一条警告:“跟踪(例如set_trace_func)将无法捕获没有--debug标志的所有事件”

    这里的另一个答案使用了命令行上的
    -srdebug
    选项。调试时不需要该选项,它会使调试器在程序的最开始启动。只需在需要时调用
    调试器
    方法启动调试器;不要使用那个选项


    即使没有ruby debug gem,JRuby via似乎仍然内置了一些基本的调试功能。您只需在文件中写入
    load'debug.rb'
    ,即可启动调试器。它输出了一些垃圾消息(“Debug.rb”和“Emacs support available.”),但似乎有效。

    我得到了“LoadError:没有这样的文件要加载--ruby Debug”-也许这在JRuby中不起作用?显然JRuby不支持任何带有非本机ruby组件的gems;谷歌提出了以下建议,但我不知道这是否有什么好处:Netbeans对我来说运行良好,只需要一点点配置。谢谢在JRuby 1.5+中,默认情况下将安装所有必需的gem,因此无需安装任何东西(特别是使用非默认命令行选项)。因此,调试将在JRuby 1.5+开箱即用的环境中工作。