Tom*_*aps 34 ruby ide debugging
由于ruby gem中可能有很多Ghost方法,我认为仅仅通过静态读取源代码来研究ruby gem的内部机制并不是一个好主意.有没有办法将第三方gem的源文件附加到正在运行的ruby进程进行调试,以便我可以设置断点并查看动态如何工作?
顺便说一下,我已经尝试通过点击'require'语句的上下文菜单"Go To-> Implementations"或第三方gem的其他符号来导航到RubyMine中第三方gem的源文件(require 'watir'for例子),没有成功.对于像Ruby这样的动态类型语言的IDE来说,符号导航失败是正常的吗?
Pet*_*own 42
我很想知道是否有更好的方法来做到这一点,但我通常如何做到:
bundle show gemname.我在Mac上,所以我通常把它管道到pbcopy,所以它被复制到我的剪贴板.bundle show rails | pbcopymvim /path/to/gem/directorydebugger相关行的上方.p variable_name),并使用ruby调试器命令逐行移动.*知道断点的位置可以理解代码,但是你应该从lib/gemname.rb开始
Chr*_*eck 12
我会避免按照当前接受的答案中的建议编辑Gem文件.而是将debugger命令放在一个app文件中,并使用该break命令在gem中设置断点.我正在使用rvm,gemset所以这是我如何做到这一点:
break /Users/chris/.rvm/gems/ruby-1.9.3-p125@<gemset>/gems/<gem_name>-<gem-version>/<path_to_file>:<line_number>