1、 原始碼檔案查詢
gdb除錯可以通過以下三個命令查詢原始檔。
forward-search regexp
從原始檔首行還是搜尋 關鍵字regexp,並將搜尋到的行號記錄。這個記錄可以被下乙個gdb命令引用。
例:for void
搜尋結果:38 void
接下來執行命令:list 則顯示以38行為中心的10行內容。(要顯示的行數可以指定)
search regexp
從當前行向下搜尋。
reverse-search regexp
從最後一行向上搜尋。
2、 檢視機器指令(彙編)
disassemble
disassemble /m 十六進製制顯示彙編指令
disassemble /r
disassemble start,end 指定起始,結束位址
disassemble start,+length 指定起始位址和顯示長度
(gdb) info line main
line 895 of "builtin.c" starts at pc 0x634c and ends at 0x6350.
(gdb) info line *0x63ff
line 926 of "builtin.c" starts at pc 0x63e4 and ends at 0x6404.
(gdb) disas 0x634c, 0x6404
dump of assembler code from 0x32c4 to 0x32e4:
0x32c4 : addil 0,dp
0x32c8 : ldw 0x22c(sr0,r1),r26
0x32cc : ldil 0x3000,r31
0x32d0 : ble 0x3f8(sr4,r31)
0x32d4 : ldo 0(r31),rp
0x32d8 : addil -0x800,dp
0x32dc : ldo 0x588(r1),r26
0x32e0 : ldil 0x3000,r31
end of assembler dump.
gdb 除錯(五)檢查檔案之list
gdb根據記錄的除錯資訊知道我們要除錯的檔案資訊。所以通過gdb我們能檢視原始碼。同時gdb也提供修改原始碼檔案的指令。1 檢視原始碼 gdb中通過list命令檢視原始碼。list每次顯示的函式可以指定,下文中假定指定顯示的行數為10行。list linenum 以linenum指定的行號為中心,顯...
GDB程式除錯(五)
檢視執行時資料 在你除錯程式時,當程式被停住時,你可以使用print命令 簡寫命令為p 或是同義命令inspect來檢視當前程式的執行資料。print命令的格式是 print print 是表示式,是你所除錯的程式的語言的表示式 gdb可以除錯多種程式語言 是輸出的格式,比如,如果要把表示式按16進...
GDB除錯core檔案
1.什麼是core dump?core dump說的是作業系統執行的乙個動作,當某個程序因為一些原因意外終止 crash 的時候,作業系統會將這個程序當時的記憶體資訊轉儲 dump 到磁碟上,產生的檔案就是core檔案了,一般會以core.形式命名。2.那些訊號能夠引起core dump?經常用到的...