4
我正在調試Ubuntu 10.04的C++應用程序,它有時會收到SIGKILL
信號。 我想捕獲信號,並阻止它殺死執行,只是爲了看看我能否在該時刻獲得應用程序狀態的一些有用信息。使用gdb處理信號
讀gdb documentation我發現handle
命令,所以我試圖把它應用到SIGKILL信號:
(gdb) handle SIGKILL stop nopass
Signal Stop Print Pass to program Description
SIGKILL Yes Yes No Killed
因此,我理解這個正確:
stop
GDB should stop your program when this signal happens. This implies the print keyword as well.
print
GDB should print a message when this signal happens.
nopass
GDB should not allow your program to see this signal.
一旦SIGKILL
信號被髮射,gdb
應該以某種方式捕獲它,打印消息,停止執行,不要讓應用程序自殺,對吧?
問題是,這不會發生,應用程序終止。
你知道我怎麼可能抓到的信號?
有用的信息:
- 當在另一線程中執行被髮射的信號,在運行的一段代碼。
- GDB版本: 4.4.3
- 克++版本: 7.1
太好了。我必須找到另一種獲取信息的方式。謝謝@克勞斯,我應該從一開始就檢查手冊頁,並讓你工作。 –