GDB調試基礎備忘

來源:互聯網
上載者:User
1.調試前提

被偵錯工具在編譯時間要加入-g選項,這樣才能產生供gdb調試使用的資訊。如

gcc -g hello.c

2.基本命令

(1)啟動調試

gdb 可執行檔名,如 gcc a.out

執行上述命令後,只是為調試做好了準備,尚未啟動被偵錯工具運行。此時進入調試介面。

(2)設定可執行檔參數

(gdb) set args 參數1 參數2 參數3 ...

(3)設定斷點

(gdb) break 檔案名稱:行號

如:break hello.c:5,則在hello.c檔案的第5行設定斷點。

(4)啟動程式

(gdb)run

輸入run,斷行符號後被偵錯工具開始運行,並停在前面設定的斷點處。

(5)逐步執行

(gdb) next

逐步執行,並且遇到函數直接跳過,不進入函數內部

(gdb) step

逐步執行,並且遇到函數,會進入函數內部

(6)查看變數的值

(gdb) print 變數名

(7)查看記憶體

(gdb) x/記憶體單元個數顯示方式記憶體單元大小
記憶體起始地址

如 (gdb)x /6xb pObj ,會列印出從pObj指向的記憶體位址開始的6個連續單元,每個單元大小為一個位元組,顯示格式為16進位。

其中顯示方式還有:

x 按十六進位格式顯示變數。
d 按十進位格式顯示變數。
u 按十進位格式顯示無符號整型。
o 按八進位格式顯示變數。
t 按二進位格式顯示變數。
a 按十六進位格式顯示變數。
i 指令地址格式
c 按字元格式設定顯示變數。
f 按浮點數格式顯示變數。

記憶體單元大小還有:

b表示單位元組,
h表示雙位元組,
w表示四位元組,
g表示八位元組

(8)繼續執行直到遇到下一個斷點

(gdb)continue

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.