gdb使用-《軟件調試的藝術》讀書筆記【chap1-2】

《軟件調試的藝術》書中講了三種工具:gbd;ddd;eclipse。主要仍是講gdb。ubuntu

chap1預備知識             {20131021}eclipse

10204953[4]

1.3.3 部分須要實踐中體會函數

1.7 實踐一下工具

root@ubuntu:/home/debug/chap1# gcc -g -Wall -o insert_sort ins.c   【-g】讓編譯器將符號表保存在生成的可執行文件中。優化

只是調試到書中提到的,還須要努力下ui

13411781

1.8 .gdbint文件沒找到,須要單獨看下.net

 

chap2.停下來環顧程序  {20131019}debug

image本章思惟導圖調試

調試器通知程序暫停執行,並可以檢查變量,跟蹤執行路徑。ip

2.2 GDB的工做針對的是機器語言指令,而不是源代碼行。因此當GDB執行到第35行斷點時,能夠認爲GDB是在源代碼的第34和35行之間等待。

      GDB能夠使用源代碼行,是由於可執行文件中包含了額外信息。【mark】

2.4 發現設置斷點後沒有正好在預期放斷點的地方產生斷點:編譯時使用選項優化了代碼;GDB認爲這行調試沒什麼意義。

2.5 示例

imageb是break的簡寫;設置main和swap函數的斷點

image出現注1的狀況:由於在任何給定時間,GDB都有一個焦點,將當前的文件當作是「活動」文件;應用list命令後,焦點轉移到另外一個文件。

                                                             tbreak命令是,設置臨時斷點

2.6 Q:在不離開GDB的狀況下,如何從新編譯?【不打開多個tty時】

      全部gdb設置斷點,在quit斷出後則不存在了,但書上說能夠保存斷點,是將斷點放在源代碼所在目錄的.gdbinit啓動文件中。【mark】我沒find到。

2.9 next和step就是至關於f10和f11的區別; continue,finish,until命令的區別沒細理解

2.10  break main if argc>2   入參個數大於2的狀況,main函數設斷點

2.11 commands命令沒理解

相關文章
相關標籤/搜索