gdb除錯命令

2021-09-19 13:28:22 字數 2235 閱讀 9513

gdb通常和gcc命令一起使用,編譯選項加入-g才可使可執行檔案處於debug模式。

而處於debug模式的可執行檔案,gdb才能對每條指令找到它對應源**的行號。

gdb [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev]

[-s symfile] [-e prog] [-se prog] [-c core] [-x cmds] [-d dir]

[prog[core|procid]]

gdb [可執行檔案]:選中可執行程式,進入gdb的debug模式;

(gdb) b(breakpoint):用法:b 函式名 :對此函式進行中斷 ;b 檔名:行號;

(gdb) run:啟動程式,執行至程式的斷點或者結束;

(gdb) l(list):用法:l funcname,制定函式的原始碼。或者l linenum,顯示指定行周圍的原始碼。或l -,顯示當前行前面的原始碼。或l,顯示當前行後面的原始碼;

(gdb) s(step):進入函式,逐語句執行;

(gdb) n(next):不進入函式,逐過程執行;

(gdb) p(print):列印顯示變數值;

(gdb) set variable=value,為變數賦值;

(gdb) kill:終止除錯的程式;

(gdb) h(help):列出gdb詳細命令幫助列表;

(gdb) clear filename.c:30:清除30行處的斷點;

(gdb) info break:顯示斷點資訊;

(gdb) delete 斷點編號:斷點編號是info break 後顯示出來的;

(gdb) bt(backtrace):回溯到段出錯的位置;

(gdb) frame 幀號:幀號是bt命令產生的堆疊針;

(gdb) q:退出;

r重頭執行,c繼續執行。

b,打斷點。

b 函式名,或者b *位址

以條件表示式設定斷點

(gdb)break 7 if i==99

檢視當前設定的斷點資訊

delete可刪除單個斷點。

delete 5

也可刪除乙個斷點的集合,這個集合用連續的斷點號來描述。

delete 1-10

序號的獲取,用上面的info breakpoints即可。

info registers,顯示所有的暫存器,可簡寫為i r。

info registers eax,只顯示%eax,可簡寫為i r eax。

檢視變數

p 變數名
x 按十六進製制格式顯示變數。

d 按十進位制格式顯示變數。

u 按十六進製制格式顯示無符號整型。

o 按八進位制格式顯示變數。

t 按二進位制格式顯示變數。

a 按十六進製制格式顯示變數。

c 按字元格式顯示變數。

f 按浮點數格式顯示變數。

按二進位制列印乙個浮點數,定義方式為【double x】。

x 位址,或x &變數名,檢視記憶體內容。

格式尾數,b表示單位元組,h表示雙位元組,w表示四位元組,g表示八字節。

gdb預設w,4字,32位。

當我們指定了位元組長度後,gdb會從指記憶體定的記憶體位址開始,讀寫指定位元組,並把其當作乙個值取出來。

同乙個作者的兩篇文。

gdb除錯命令

一 gdb常用命令簡介 rrun 執行.程式還沒有執行前使用 c cuntinue 執行到下一斷點處 qquit 退出tab tab命令補全功能 h help幫助s step 跟入函式 nnext 執行下一行的 如果是函式呼叫,也當作一行 執行到此函式返回 b breakpoint 設定斷點,用法 ...

GDB除錯命令

gdb的命令很多,本文不會全部介紹,僅會介紹一些最常用的。在介紹之前,先介紹gdb中的乙個非常有用的功能 補齊功能。它就如同linux下 shell中的命令補齊一樣。當你輸入乙個命令的前幾個字元,然後輸入tab鍵,如果沒有其它命令的前幾個字元與此相同,shell將補齊此命令。如果有 其它命令的前幾個...

GDB除錯命令

用gdb除錯程式 gdb概述 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這...