gpt4 book ai didi

ruby - 确定程序是否在 Debug模式下运行

转载 作者:数据小太阳 更新时间:2023-10-29 06:50:12 33 4
gpt4 key购买 nike

我使用 RubyMine 编写和调试我的 Ruby 2.0 代码。它为此目的使用 ruby​​-debug-ide。我想知道程序是否在 Debug模式下运行。

我知道有 Ruby $DEBUG 全局变量,但据我所知,ruby-debug-ide 并没有改变它,因为它没有使用 -d ruby 标志。

如果我使用 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

我尝试使用 ARGV$0 来确定命令行是否包含字符串 'rdebug-ide' 但是 ARGV 是一个空数组,$0 只是'/home/user/file.rb',我怎样才能得到 RubyMine 执行的完整命令行?

最佳答案

这是我做的:

我将以下代码放入 (rails) 操作中,并在调试和非 Debug模式下对输出进行了比较:

puts ENV.to_hash.to_yaml

我注意到其中一个区别在于 ENV['RUBYLIB'](还有 IDE_PROCESS_DISPATCHERDEBUGGER_STORED_RUBYLIBRUBYOPT 和 DEBUGGER_HOST)

所以这是您要检查的方式:

if ENV['RUBYLIB'] =~ /ruby-debug-ide/
puts 'in debug mode'
else
puts 'not in debug mode'
end

关于ruby - 确定程序是否在 Debug模式下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039807/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com