在低端微控制器上進行仿真時,直接使用JTAG和IDE集成開發環境進行在線調試,不僅操作簡單,而且界面良好,運行情況和結果非常直觀。但是在Linux平台,很少有類似的集成開發環境,Linux上的GDB使用命令操作的方式,而且它要比集成開發環境強大多。下面是整理的常用的GDB調試命令。
編譯時必須添加-g才能利用GDB進行調試,如:gcc -g test.c -o test
1. gdb -tui test打開調試程序,界面分頁,上面是代碼,下面是命令;
2. gdbtui的開關快捷鍵:ctrl+x ctrl+a或者ctrl+x A
3. file test在運行gdb下打開某個文件
4. run/r 運行
5. continue/c 繼續運行
6. step/s 如果有函數則進入函數執行
7. finish 跳出當前的函數
8. stop 停止運行
9. until xxx 可用於跳出循環
10.guit/ctrl+d 退出GDB
11.print/p var 打印變量的值
12.print/p &var 打印變量地址
13.printf/p *addr 打印地址的值
14.printf/p /x var 用16進制顯示數據
x十六進制/d十進制/u十六進制無符號/t二進制/c字符/f浮點
15.break/b xxx 在某行打斷點
16.break/b fun 在某個函數處加斷點
17.break/b 30 if n==100 //當變量n等於100的時候在30行處加斷點
18.break fileName:N 在某個文件的N行加斷點
19.info break/b 查看斷點
20.clear N 刪除N行斷點
21.delete N 刪除N號斷點
22.delete 刪除所有斷點
23.disable xxx 失能斷點
24.enable xxx 使能斷點
25.info b 查看斷點
26.info source 查看當前程序
27.info stack 查看堆棧信息
28.info args 查看當前參數值
29.display args 查看當前參數值
30.bt 查看函數堆棧
31.pwd查看程序路徑
32.ctrl+p 前一條命令
33.ctrl+n 下一條命令
34.watch xxx 設置監控點,在變量改變的時候停下來。(不可直接設置,先加斷點在監測)
35.ctrl+l可能layout會造成控制台花屏,使用ctrl+L清屏
36.list linenum:以linenum指定的行號為中心,顯示10行
37.list function:以指定的函數為中心,顯示10行
38.list:重復上一次的list指令,也可以直接按回車鍵,重復上次指令。
39.set listsize count:設置每次顯示的行數。
40.show listsize:顯示已設置的顯示行數。
41.list first,last:顯示指定起始行到結束結束行的源文件。
42.list ,last:顯示以指定的last為結束行,顯示10行。
43.list first,:以first為第一行,顯示10行。
44.list +:以上次顯示的結束行為起始行顯示後10行
45.list –:以上次顯示的起始行為結束行,顯示前10行
GDB調試程序用法 http://www.linuxidc.com/Linux/2013-06/86044.htm
GDB+GDBserver無源碼調試Android 動態鏈接庫的技巧 http://www.linuxidc.com/Linux/2013-06/85936.htm
使用hello-gl2建立ndk-GDB環境(有源碼和無源碼調試環境) http://www.linuxidc.com/Linux/2013-06/85935.htm
在Ubuntu上用GDB調試printf源碼 http://www.linuxidc.com/Linux/2013-03/80346.htm
Linux下用GDB調試可加載模塊 http://www.linuxidc.com/Linux/2013-01/77969.htm
Ubuntu下使用GDB斷點Go程序 http://www.linuxidc.com/Linux/2012-06/62941.htm
使用GDB命令行調試器調試C/C++程序 http://www.linuxidc.com/Linux/2014-11/109845.htm
GDB 的詳細介紹:請點這裡
GDB 的下載地址:請點這裡