Java 如何调试Rails应用程序?
是否可以以与Java应用程序类似的方式调试Rails应用程序—设置断点并单步执行代码 这方面最好的工具是什么 我有一个混合的Java/RubyonRails应用程序,可以在Eclipse或Netbeans中运行 我想在此应用程序中输入一些代码,并尝试找出我遇到的问题的原因 在Eclipse中,如果我在我的Java 如何调试Rails应用程序?,java,ruby-on-rails,ruby,eclipse,netbeans,Java,Ruby On Rails,Ruby,Eclipse,Netbeans,是否可以以与Java应用程序类似的方式调试Rails应用程序—设置断点并单步执行代码 这方面最好的工具是什么 我有一个混合的Java/RubyonRails应用程序,可以在Eclipse或Netbeans中运行 我想在此应用程序中输入一些代码,并尝试找出我遇到的问题的原因 在Eclipse中,如果我在我的blog\u控制器中设置一个断点,然后选择“Debug”按钮,它似乎使用ruby Debug idegem来执行代码,但我得到了这个毫无帮助的输出,并且没有进入任何源的选项: Fast Debu
blog\u控制器
中设置一个断点,然后选择“Debug”按钮,它似乎使用ruby Debug idegem来执行代码,但我得到了这个毫无帮助的输出,并且没有进入任何源的选项:
Fast Debugger (ruby-debug-ide 0.4.5) listens on localhost:56726
./war/WEB-INF/app/controllers/blog_controller.rb:1
C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_load'
C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_program'
C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/bin/rdebug-ide:82
C:/Ruby18/bin/rdebug-ide:19:in `load'
C:/Ruby18/bin/rdebug-ide:19
Uncaught exception: uninitialized constant ApplicationController
我不确定我是做错了什么,还是这就是我所能期待的 您可以期待更多。我使用了Aptana版本的Eclipse来调试Rails应用程序,正如您所描述的——设置断点并逐步完成代码 您可能做错了。它看起来好像在调试单个控制器文件,而不是调试Rails应用程序。当我尝试从命令行执行控制器文件时,会收到类似的消息:
C:\workspace\myapp\app\controllers>ruby users_controller.rb
users_controller.rb:1: uninitialized constant ApplicationController (NameError)
在Aptana RadRails中,我选择
Run>Debug As>Ruby应用程序
来调试应用程序 对于vim用户,我强烈建议查看,这与Tim Pope的rails.vim脚本非常吻合
它为您提供了一个方便的
:Rdebugger
命令,允许您设置断点并打开一个拆分窗口以显示变量值。我使用最多的调试器是gem,它是一个类似gdb的命令行调试器。一旦你学会了一些命令,它就非常快速有效,并为你提供了一些便利的功能,比如能够在你的程序上下文中启动irb
,并进行动态更改
而且,基于命令行,当您需要在远程服务器上调试时,它非常方便。如果您知道如何读取错误跟踪,那么rails中的Debuggin很简单!!但是,如果您需要在运行时显式地注意这些值,那么您可以使用rails断点器。下面是指向如何使用断点器的链接。希望这对您有所帮助
我不能为Eclipse(对我来说从来没有很好的效果)或Aptana(没有尝试过)说话,但根据经验,我可以说两者都可以,并且会做你想做的事情。我认为在这两种情况下,您可能都应该确保ruby debug base和ruby debug ide gems是最新的:RubyMine在完成之前对我来说尤其不起作用。我建议只为99%的RoR调试设置断点(实际上我只是将放在控制台上)-此方法简单,可用于任何ide,所以你永远不需要学习新的调试器是如何工作的。事实上,我对Aptana也有同样的问题<代码>运行>调试为>Ruby应用程序就是不起作用。我最终通过转到
服务器
选项卡,然后在调试模式下启动服务器,使调试器工作。之后,设置一些断点并触发相应的操作。希望这能有所帮助。可能与此无关,但我想在某个地方发布:出现错误:“未定义调试程序的“run\u init\u script”方法:Module”运行rails 2.3.2中的调试程序。sudogem安装了ruby debug,问题就解决了。有一个Netbeans指南。调试?在大多数情况下,这只是知道在Ruby(以及扩展到Rails)的情况下应该在哪里查找
本例中的问题是,您的应用程序控制器
可能仍名为application.rb,应将其重命名为application\u controller.rb。这是我使用的方法,我非常喜欢它。这里有一个链接,其特点是调试器命令为黑色,易于阅读,而不是浅灰色:-)这是必须知道的!有很多情况下IDE可能不存在!这里有一个指南: