Gdb 調試信號

http://blog.csdn.net/yanook/article/details/6585648

GDB有能力在你調試程序的時候處理任何一種信號,你可以告訴GDB需要處理哪一種信號。你可以要求GDB收到你所指定的信號時,馬上停住正在運行的程序,以供你進行調試。你可以用GDB的handle命令來完成這一功能。


    handle <signal> <keywords...>
        在GDB中定義一個信號處理。信號<signal>可以以SIG開頭或不以SIG開頭,可以用定義一個要處理信號的範圍(如:SIGIO- SIGKILL,表示處理從SIGIO信號到SIGKILL的信號,其中包括SIGIO, SIGIOT,SIGKILL三個信號),也可以使用關鍵字 all來標明要處理所有的信號。一旦被調試的程序接收到信號,運行程序馬上會被GDB停住,以供調試。其<keywords>可以是以下幾種關鍵字的一個或多個。

        nostop
            當被調試的程序收到信號時,GDB不會停住程序的運行,但會打出消息告訴你收到這種信號。
        stop
            當被調試的程序收到信號時,GDB會停住你的程序。
        print
            當被調試的程序收到信號時,GDB會顯示出一條信息。
        noprint
            當被調試的程序收到信號時,GDB不會告訴你收到信號的信息。
        pass
        noignore
            當被調試的程序收到信號時,GDB不處理信號。這表示,GDB會把這個信號交給被調試程序會處理。
        nopass
        ignore
            當被調試的程序收到信號時,GDB不會讓被調試程序來處理這個信號。

    info signals
    info handle

    查看有哪些信號在被GDB檢測中。


發佈了81 篇原創文章 · 獲贊 7 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章