gdb有能力在你除錯程式的時候處理任何一種訊號,你可以告訴gdb需要處理哪一種訊號。你可以要求gdb收到你所指定的訊號時,馬上停住正在執行的程式,以供你進行除錯。你可以用gdb的handle命令來完成這一功能。
handle
在gdb中定義乙個訊號處理。訊號可以以sig開頭或不以sig開頭,可以用定義乙個要處理訊號的範圍(如:sigio- sigkill,表示處理從sigio訊號到sigkill的訊號,其中包括sigio, sigiot,sigkill三個訊號),也可以使用關鍵字 all來標明要處理所有的訊號。一旦被除錯的程式接收到訊號,執行程式馬上會被gdb停住,以供除錯。其可以是以下幾種關鍵字的乙個或多個。
nostop
當被除錯的程式收到訊號時,gdb不會停住程式的執行,但會打出訊息告訴你收到這種訊號。
stop
當被除錯的程式收到訊號時,gdb會停住你的程式。
當被除錯的程式收到訊號時,gdb會顯示出一條資訊。
noprint
當被除錯的程式收到訊號時,gdb不會告訴你收到訊號的資訊。
pass
noignore
當被除錯的程式收到訊號時,gdb不處理訊號。這表示,gdb會把這個訊號交給被除錯程式會處理。
nopass
ignore
當被除錯的程式收到訊號時,gdb不會讓被除錯程式來處理這個訊號。
info signals
info handle
檢視有哪些訊號在被gdb檢測中。
訊號 核心轉儲 gdb除錯
訊號 使用kill l 檢視linux中的訊號。可以從上圖看出linux中一共有62個訊號 沒有32,33 1 31為普通訊號,34 64為實時訊號。我們主要關注前31個訊號。每乙個訊號都有其對應的意義。1 sighup 本訊號在使用者終端連線 正常或非正常 結束時發出,通常是在終端的控制程序結束時...
gdb 除錯 vs除錯
一 先要生成二進位制檔案 g g 1.cpp o 1.out g引數不要省,不然 gdb l 引數用不了 二 引數 設定斷點 設定 函式斷點break func 在某行設定斷點break 7 檢視斷點資訊 info break 刪除斷點 d 刪除所有斷點 d 3 刪除第三個 執行 r 下一步 n 逐...
GDB除錯命令以及GDB除錯段錯誤
一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...