GDB工具如何使用斷點資訊

2021-06-02 12:13:44 字數 1659 閱讀 9106

在linux平台下,使用最多的就是除錯工具gdb.通過命令gcc -g test.c 。缺省會生成a.out檔案,這個檔案由於引數-g的原因加入了除錯資訊。所以可以使用gdb來載入並除錯,但是在使用斷點的時候,你會很鬱悶。真的。比如下面先來看這個過程。

/******

test.c **

********/

1 #include

2 3 void docout()

4 7 int main(void)

8執行命令 gcc -g test.c  輸出:

[root@yongxin ~]# gcc -g test.c

[root@yongxin ~]# ls

anaconda-ks.cfg  download               nautilus-debug-log.txt  test.c

a.out            firefox_wall*****.png  pictures                videos

crossplatform    install.log            projects

desktop          install.log.syslog     public

documents        music                  templates

再執行gdb  a.out 設定斷點資訊 breakpoint

23       void docout()

4      

7       int main(void)

8       {

910        int b;

11        printf("%p\n",&b);

(gdb) break 10

breakpoint 1 at 0x80483da: file test.c, line 10.

(gdb) break 12

breakpoint 2 at 0x80483ed: file test.c, line 12.

(gdb) infobreak

undefined command: "infobreak".  try "help".

(gdb) info break

num type           disp enb address    what

1   breakpoint     keep y   0x080483da in main at test.c:10

2   breakpoint     keep y   0x080483ed in main at test.c:12

可以執行,沒問題。但是這些斷點資訊是沒有辦法保持的。下次進來的時候,必須重新設定斷點。當你要頻繁退出的時候,就會非常煩。特別是斷點特別多的情況。氣死你。

所以解決辦法就是將打斷點的命令(breakpoint 行號)寫到乙個檔案裡面去 ,在初始化的時候自動載入。

比如檔案break.list

breakpoint 10

breakpoint 12

然後通過命令   gdb a.out  -x break.list -tui     載入這個程式

然後 info break  你就可以看到所有載入的斷點了。

完畢。

ROS使用gdb除錯斷點

我目前沒有使用roslaunch 通過修改 launch prefix xterm e gdb ex run args 獲得成功。我使用gdb去啟動orb slam節點。在 catkin ws devel lib orb slam下,終端開啟輸入 gdb orb slam雖然我會提示 reading...

gdb工具使用

gdb是乙個由gnu開源組織發布的 unix linux作業系統下的 基於命令列的 功能強大的程式除錯工具。對於一名linux下工作的c 程式設計師,gdb是必不可少的工具。以下程式為例 include include int add sum int a,int b int main int arg...

gdb工具的使用

gdb是乙個互動式的除錯工具,在linux系統中可以很好地幫助我們完成程式的除錯。它的主要功能有 1.設定斷點,讓程式直接執行至可能出錯的地方 2.檢視變數的值,在除錯過程中隨時檢視我們關注的變數的值。3.修改變數的值,這是vs的偵錯程式所不具有的功能,可以幫助我們更快的定位程式的問題所在。那麼gd...