Jak skonfigurować ruby, aby wprowadzić debugger na Ctrl-C (SIGINT)?
Chciałbym wprowadzić debugger po wpisaniu Ctrl-C (lub wysłaniu SIGINT). mamzainstalowany debugger (Używam Ruby 1.9.3) i sprawdziłem, że działa. Dodałem to do moich plików instalacyjnych (to jest dla Padrino, ale zakładam, że byłoby podobnie w Railsach):
# file: config/boot.rb
Padrino.before_load do
trap("SIGINT") { debugger } if Padrino.env == :development
end
... ale wpisanie Ctrl-C nie wywołuje debugera. W rzeczywistości, jeśli wymieniędebugger
zputs "saw an interrupt!"
, wpisanie Ctrl-C również nie powoduje, że druk się wydarzy.
Następującyta sugestia zMike Dunlavey, Próbowałem wyraźnie dzwonićcatch Interrupt
z poziomu debuggera:
$ rdebug `which padrino` console
^Z^Z$HOME/usr/bin/padrino:9
require 'rubygems'
(rdb:1) catch Interrupt
Catch exception Interrupt.
(rdb:1) c
=> Loading development console (Padrino v.0.10.7)
=> Loading Application BlueDotAe
=> Loading Application Admin
irb(main):001:0> C-c C-c^C
irb(main):001:0>
Bez radości - przerwanie nie wchodziło do debuggera.
czego mi brakuje?