有人可以总结一下$DEBUG
使用的时间/时间。我对它不熟悉,也没有找到文档(Class Thread documentation和Module Signal documentation)。
这些是我不清楚的例子:
p @ivar if $DEBUG
和
Signal.trap("USR1") do
$debug = !$debug
puts "Debug now: #$debug"
end
答案 0 :(得分:4)
答案 1 :(得分:3)
这两者完全不同。第一个是仅在设置$DEBUG
时执行的调试行;如果将命令行参数$DEBUG
传递给-d
,则会设置ruby
。
第二个是翻转一个$debug
变量(不同的情况!!),这是该程序特有的。当您使用SIGUSR1
信号点击进程时,它将更改调试模式(有时仅用于打印调试信息)。