首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用RubyMine 1.9.3在Ruby4.5中进行调试

无法使用RubyMine 1.9.3在Ruby4.5中进行调试
EN

Stack Overflow用户
提问于 2012-07-26 23:00:15
回答 3查看 18.9K关注 0票数 17

很抱歉问题太长了,但我想说清楚,我没有犯任何愚蠢的错误!

因此,我正在努力使用Ruby1.9.3在Ruby4.5中进行调试,我的步骤如下:

安装Ruby1.9.3、ruby Gems、DevKit和Rails (遵循this guide)的全新安装(即删除了所有以前的Ruby和gem目录)--工作正常。

然后,我尝试开始使用我的团队的ruby代码。我在RubyMine中打开该目录(记得先删除.idea目录),系统提示我运行bundle install,我根据请求(从控制台)执行此操作。这将成功完成。重新启动RubyMine。

然后我确保Ruby正常工作: Tools > IRB Console > puts "test" #test => nil - Works现在我尝试使用调试器(SHIFT + F9),并看到以下消息:

The gem ruby-debug-base19x required by the debugger is currently not installed. Would you like to install it?"

我单击cancel并检查我的Gemfile,当前唯一与调试相关的是:

代码语言:javascript
复制
# Debugging
gem 'debugger'
#gem 'ruby-debug-base19', :require => false
#gem 'ruby-debug19', :require => false
gem 'ruby-prof', :require => false #, :git => 'git://github.com/wycats/ruby-prof.git'

看起来我们有了支持ruby-debug的调试器。然而,阅读here,似乎debugger是不够的。我需要安装ruby-debug-base19x。因此,在SO之后,我注释掉了Gemfile中的调试器并运行

代码语言:javascript
复制
gem install ruby-debug-base19x --pre
gem install ruby-debug-ide --pre

它运行得很好,所以我补充说

代码语言:javascript
复制
gem 'ruby-debug-base19x', '0.11.30.pre10'
gem 'ruby-debug-ide', '0.4.17.beta14'

到我的Gemfile,然后从控制台运行一个bundle install

最后,在RubyMine (SHIFT + F9)中打开调试器。puts "test" #test => nil又能工作了。因此,我尝试在我的脚本栏中双击以创建一个断点,RubyMine暂停了一下,然后我得到:

代码语言:javascript
复制
D:\Ruby\Ruby193\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/bin/rdebug-ide --dispatcher-port 55451 --port 55452 -- S:/code/account_groups/script/rails console
Fast Debugger (ruby-debug-ide 0.4.17.beta14, ruby-debug-base 0.11.30.pre10) listens on 127.0.0.1:55452
D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby_debug.so: warning: already initialized constant VERSION
5992: Exception in DebugThread loop: undefined method `errmsg' for #<Debugger::ControlState:0x2a2f3e8>
Backtrace:
D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby-debug/command.rb:160:in `errmsg'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby-debug/commands/breakpoints.rb:81:in `execute'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:89:in `block in process_commands'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:86:in `catch'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:86:in `process_commands'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide.rb:160:in `block in start_control'

Process finished with exit code 0

我还尝试了使用代码的备份副本,并且遵循相同的步骤,在尝试加载调试器时也出现了以下错误:

代码语言:javascript
复制
Uncaught exception: cannot load such file -- ruby-debug
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    S:/code/account_groups_so/lib/systematic-online/r_spec_runner.rb:5:in `<top (required)>'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    S:/code/account_groups_so/config/environment.rb:12:in `block in <top (required)>'
    S:/code/account_groups_so/config/environment.rb:12:in `each'
    S:/code/account_groups_so/config/environment.rb:12:in `<top (required)>'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/application.rb:103:in `require_environment!'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:40:in `<top (required)>'
    S:/code/account_groups_so/script/rails:6:in `require'
    S:/code/account_groups_so/script/rails:6:in `<top (required)>'

脚本没有任何错误(我以前用过它很好),跟踪似乎与ruby-debug-ide有关-发生了什么?

谢谢你的帮助--这让我抓狂!

EN

回答 3

Stack Overflow用户

发布于 2012-10-11 20:57:45

为了避免这个问题,我的Gemfile中有这一行

gem 'debugger' unless ENV["RM_INFO"]

票数 9
EN

Stack Overflow用户

发布于 2013-03-18 22:33:45

只需从jetbrains记录解决方案:使用以下两种方法之一:

代码语言:javascript
复制
gem 'debugger', {group: [:test, :development]}.merge(ENV['RM_INFO'] ? {require: false} : {})

或者:

代码语言:javascript
复制
gem 'pry-debug', {group: [:test, :development]}.merge(ENV['RM_INFO'] ? {require: false} : {})

这确保了Gemfile.lock保持不变,因此混合了RubyMine和vi/sublime/任何东西的组可以愉快地工作,因为在RubyMine环境中不需要gem。

票数 6
EN

Stack Overflow用户

发布于 2016-03-07 06:05:18

我在调试器上遇到了一些问题。我安装了Rails,并在配置选项中将路径设置为rails安装中的ruby.exe,一切工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11672201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档