Ruby中的$DEBUG全局变量

Ruby中的$DEBUG全局变量,ruby,Ruby,谁能总结一下$DEBUG使用了什么/什么时候。我不熟悉它,也没有找到文档(和) 这些例子我并不清楚发生了什么: p @ivar if $DEBUG 以及: 这两个完全不同。第一个是仅当设置了$DEBUG时才执行的调试行$DEBUG 第二个是翻转一个特定于程序的$debug变量(不同的大小写!!)。当您使用SIGUSR1信号点击进程时,它将更改调试模式(仅在某些情况下用于打印调试信息)。您可以在此处看到: 3秒钟的谷歌搜索:请您展示一下在命令行中设置它的示例,ty!呃,ruby-d。(或RUBY

谁能总结一下
$DEBUG
使用了什么/什么时候。我不熟悉它,也没有找到文档(和)

这些例子我并不清楚发生了什么:

p @ivar if $DEBUG
以及:


这两个完全不同。第一个是仅当设置了
$DEBUG
时才执行的调试行<如果将命令行参数
-d
传递给
ruby
,则会设置code>$DEBUG

第二个是翻转一个特定于程序的
$debug
变量(不同的大小写!!)。当您使用
SIGUSR1
信号点击进程时,它将更改调试模式(仅在某些情况下用于打印调试信息)。

您可以在此处看到:

3秒钟的谷歌搜索:请您展示一下在命令行中设置它的示例,ty!呃,
ruby-d
。(或
RUBYOPT=-d ruby
)。
Signal.trap("USR1") do
  $debug = !$debug
  puts "Debug now: #$debug"
end