筆記(4) 偵錯程式GDB

2021-09-27 11:45:01 字數 952 閱讀 3947

三大特點

1.啟動被除錯的程式(run);

2.設定斷點,單步執行;

3.檢視變數的值;

檢視源**

gdb sum -tui

layout asm(顯示彙編)

layout src(顯示原碼)

layout split(全部顯示)

break+行號

info break(檢視斷點編號)

delete+斷點編號(刪除斷點)

break+行號+條件(break 17 if i=10 在17行當i=10停止)

printf i(檢視變數i)

break+函式名(當呼叫函式停下,break func)

disable+斷點編號(關閉斷點)

enable+斷點編號(開啟斷點)

clear+行號(清除這行斷點)

執行命令

run(執行程式)

next(不進入子函式)

step(進入子函式)

continue(繼續執行直到程式結束,再次遇到斷點會停止)

作業

finish(退出該函式返回到它的呼叫函式中)

until(結束當前迴圈)

watch(在程式中設定乙個監測點(即資料斷點))

display(程式停止時顯示變數和表達時)

呼叫函式:

1.停止程序

2.建立乙個新的棧框(遠離真實棧)

3.儲存所有暫存器

4.設定你想要呼叫的函式的暫存器引數

5.設定棧指標指向新的棧框stack frame

6.在記憶體中某個位置放置一條陷阱指令

7.為陷阱指令設定返回位址

8.設定指令暫存器的值為你想要呼叫的函式位址

9.再次執行程序

GDB偵錯程式

偵錯程式gdb 一 啟動和退出gdb gdb除錯的物件是可執行檔案,而不是程式的源 如果要使乙個可執行檔案可以被gdb除錯,那麼在使用編譯器gcc編譯程式時需要加入 g選項。gdb除錯乙個程式的命令格式是 gdb 程式檔名 也可以在linux提示符下,直接輸入gdb,然後使用file命令裝入要除錯的...

gdb偵錯程式

在使用gdb偵錯程式之前,必須在編譯程式時加上 g選項 功能 顯示上次內容之前或之後的10行內容,首次使用顯示main 函式之前或之後的10行內容 命令 list 簡稱 l 功能 顯示引數行之前和之後的10行內容.命令 list line number 簡稱 l 10 功能 顯示原始檔從一行到另一行...

gdb偵錯程式

gdb是gnu發布的一款強大的除錯功能 gdb主要完成下面三個方面的功能 1 啟動被除錯程式 2 讓被除錯的程式在指定的位置停住 3 當程式停住時,可以檢視程式的狀態 變數值 gcc g test.c o test 生成除錯資訊 gdb test 啟動gdb gdb除錯工具相關命令 gdb run ...