我的Gdb偵錯程式的使用

2021-10-10 02:55:11 字數 1863 閱讀 1000

實驗環境:ubuntu18.04桌面版

在檔案目錄編寫簡單的helloworld的程式。

#include

intmain

(void

)

使用gcc命令編輯檔案,執行檔案正常。

以下為gdb命令:

**功能

file

裝入想要除錯的可執行檔案。

kill

終止正在除錯的程式。

list

列出產生執行檔案的源**的一部分。

next

執行一行源**但不進入函式內部。

step

執行一行源**而且進入函式內部。

run執行當前被除錯的程式。

c繼續執行程式。

quit

終止gdb。

watch

使你能監視乙個變數的值而不管它何時被改變。

backtrace

棧跟蹤,查出**被誰呼叫。

print

檢視變數的值。

make

使你能不退出gdb就可以重新產生可執行檔案。

shell

使你能不退出gdb就可以重新產生可執行檔案。

whatis

顯示變數或函式型別。

break

在**里設斷點,這將使程式執行到這裡時被

掛起。info break

顯示當前斷點清單,包括到達斷點處的次數等。

info files

顯示被除錯檔案的詳細資訊。

info func

顯示所有的函式名稱。

info local

顯示當函式中的區域性變數資訊。

info prog

顯示被除錯程式的執行狀態。

delete [n]

刪除第n個斷點。

disable[n]

關閉第n個斷點。

enable[n]

開啟第n個斷點。

ptype

顯示結構定義。

set variable

設定變數的值。

call name(args)

呼叫並執行名為name,引數為args的函式。

finish

終止當前函式並輸出返回值。

return value

停止當前函式並返回value給呼叫者。

break命令的使用

– 根據行號設定斷點:

• (gdb) break linenum

– 根據函式名設定斷點: • (gdb) break funcname

– 執行非當前原始檔的某行或某函式時停止執行: • (gdb) break filename:linenum

• (gdb) break filename:funcname

– 根據條件停止程式執行: • (gdb) break linenum if expr

• (gdb) break funcname if expr

在檔案目錄輸入gdb進入

由於程式沒錯,除錯正常進行

程式除錯是處理程式錯誤的方式。對於上千行的**,我們只是看已經十分難找出此程式的錯誤了,使用程式除錯顯得十分重要。

參考:補充__gdb偵錯程式及除錯方法.pdf

gdb 偵錯程式的使用

gdb 偵錯程式的使用 在用gcc編譯程式時,加上 g 引數,然後執行 gdb 可執行程式名 就進入gdb除錯模式 常用指令 1.l list 列出程式清單 2.r run 執行程式 3.b breakpoint 設定斷點,格式 b 行號 函式名 4.b num if i 20 設定斷點的觸發條件 ...

Linux偵錯程式 gdb的使用

1 背景 a.程式的發布方式有兩種 debug模式和release模式 b.linux gcc g 出來的二進位制程式,預設是release模式 c.要使用gdb除錯,必須在源 生成二進位制程式的時候,加上 g選項 2 使用 語法 gdb filename 退出 ctrl d或者quit 可簡寫q ...

Linux偵錯程式gdb的使用

在源 生成二進位制程式時加上 g。1 使用gdb 需要除錯的檔名命令開始除錯 2 使用ctrl d或者quit退出 3 list l 顯示源 每次列10列 4 l list 函式名 顯示函式的源 5 r run 執行程式,相當於vs中的f5 6 n next 單條執行,相當於vs中的f10逐過程 7...