《軟件調試的藝術》書中講了三種工具:gbd;ddd;eclipse。主要仍是講gdb。ubuntu
chap1預備知識 {20131021}eclipse
1.3.3 部分須要實踐中體會函數
1.7 實踐一下工具
root@ubuntu:/home/debug/chap1# gcc -g -Wall -o insert_sort ins.c 【-g】讓編譯器將符號表保存在生成的可執行文件中。優化
只是調試到書中提到的,還須要努力下ui
1.8 .gdbint文件沒找到,須要單獨看下.net
chap2.停下來環顧程序 {20131019}debug
調試器通知程序暫停執行,並可以檢查變量,跟蹤執行路徑。ip
2.2 GDB的工做針對的是機器語言指令,而不是源代碼行。因此當GDB執行到第35行斷點時,能夠認爲GDB是在源代碼的第34和35行之間等待。
GDB能夠使用源代碼行,是由於可執行文件中包含了額外信息。【mark】
2.4 發現設置斷點後沒有正好在預期放斷點的地方產生斷點:編譯時使用選項優化了代碼;GDB認爲這行調試沒什麼意義。
2.5 示例
出現注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命令沒理解。