2013-03-08 52 views
1

有人可以總結一下什麼時候使用$DEBUG。我不熟悉它,並且沒有找到相關文檔(Class Thread documentationModule Signal documentation)。

這些例子是我不明白這是怎麼回事:

p @ivar if $DEBUG 

和:

Signal.trap("USR1") do 
    $debug = !$debug 
    puts "Debug now: #$debug" 
end 
+0

3秒:http://nhw.pl/wp/2006/08/04/debug-variable-in-ruby – nneonneo 2013-03-08 09:30:20

回答

3

這兩個是完全不同的。第一個是僅在設置了$DEBUG時才執行的調試行;如果您將命令行參數-d傳遞到ruby,則設置爲$DEBUG

第二個是翻轉$debug變量(不同情況!!),這是特定於該程序。當您通過SIGUSR1信號進入該進程時,它將更改調試模式(僅在有時僅用於打印調試信息很有用)。

+0

會請你告訴一例中設定的它在命令行中,ty! – aug2uag 2013-03-08 09:45:33

+1

呃,'ruby -d