gdb 除錯(五)檢查檔案之搜尋和檢視彙編指令

2021-06-01 06:58:11 字數 1162 閱讀 7401

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?經常用到的...