我使用RubyMine编写和调试我的Ruby 2.0代码.它为此目的使用ruby-debug-ide.我想知道程序是否在调试模式下运行.
我知道有Ruby $DEBUG全局变量,但据我所知,ruby-debug-ide没有改变它,因为它没有使用-druby标志.
如果我使用Rubymine调试我的文件,执行的命令如下所示:
/home/user/.rvm/rubies/ruby-2.0.0-p353/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/user/.rvm/gems/ruby-2.0.0-p353/gems/ruby-debug-ide-0.4.22/bin/rdebug-ide --disable-int-handler --port 37737 --dispatcher-port 47992 -- /home/user/file.rb
Run Code Online (Sandbox Code Playgroud)
我试图使用ARGV或$0,以确定命令行是否包含字符串,'rdebug-ide'但是ARGV是一个空数组,$0只是'/home/user/file.rb',我如何获得RubyMine执行的完整命令行?
这就是我做的:
我将以下代码放在(rails)操作中,并在调试和非调试模式下对输出执行diff:
puts ENV.to_hash.to_yaml
Run Code Online (Sandbox Code Playgroud)
我注意到的区别之一是ENV['RUBYLIB'](有也是IDE_PROCESS_DISPATCHER,DEBUGGER_STORED_RUBYLIB,RUBYOPT,and DEBUGGER_HOST)
所以这是你如何检查:
if ENV['RUBYLIB'] =~ /ruby-debug-ide/
puts 'in debug mode'
else
puts 'not in debug mode'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |