1.gdb -x command.txt
每次重複輸入命令很麻煩,可以使用上面的命令,把命令輸入進command.txt裡面,然後直接就可以執行gdb。
2.list
2.1 list function 列印function源程式
2.2 list line1,line2 列印從line1到line2的程度
3.斷點
檢視當前斷點資訊: info b
4找到乙個函式的入口位址
首先,找到函式在第幾行:lise function
info line 行號
方法二:用objdump生成符號表,通過符號表來知道
objdump -t example >symbol.txt
5.檢視程式棧幀的呼叫
bt顯示的是當前棧幀呼叫,如:
這個表示當前程式總共維護三個棧幀,從下往上看,首先,程式第乙個進入的是main函式,然後再454行的位置呼叫了launch函式,在launch中,呼叫了test函式,而test就是當前程式正在執行的地方。=
上面最左邊的編號就是棧所對應的的棧框,如果要選中某乙個棧,要輸入命令
frame num
如frame 2
選中了main函式的棧框
如果需要更加詳細的資訊,就要使用
info f
得到的詳細棧幀資訊:
包括各種暫存器的位址,通過這些,就可以來跟蹤函式的棧幀。
rip是程式指令的指標,指向嚇一跳要執行的指令。
GDB命令,使用筆記
命令 解釋 示例 file 檔名 載入被除錯的可執行程式檔案。因為一般都在被除錯程式所在目錄下執行gdb,因而文字名不需要帶路徑。gdb file gdb sample rrun的簡寫,執行被除錯的程式。如果此前沒有下過斷點,則執行完整個程式 如果有斷點,則程式暫停在第乙個可用斷點處。gdb r c...
GDB常見使用命令
gdb gnu symbolic debugger 簡單地說就是乙個除錯工具。它是乙個受通用公共許可證即gpl保護的自由軟體。像所有的偵錯程式一樣,gdb可以讓你除錯乙個程式,包括讓程式在你希望的地方停下,此時你可以檢視變數 暫存器 記憶體及堆疊。更進一步你可以修改變數及記憶體值。gdb是乙個功能很...
gdb入門 gdb基本命令
參見 linux c程式設計一站式學習 backtrace 或bt 檢視各級函式呼叫及引數 finish 執行到當前函式返回,然後停下來等待命令 frame 或f 幀編號 選擇棧幀 info 或i locals 檢視當前棧幀區域性變數的值 list 或l 列出源 接著上次的位置往下列,每次列10行 ...