1)單步除錯: n (next), s(step 跟n的區別,s進入到函式內)
2)恢復操作:c(continue) 直到遇到下個斷點
3)臨時斷點: tbreak 有效期,第一次遇到
4)檢查變數:p (printf)
5)監視點:watch 當監視點的值發生變化時停止
6)檢視棧:bt(backtrace) 顯示整個棧的內容。
7)看已經設的斷點: ib(info break)
8)設定斷點:break function, break line_number, break filename:line_number, break filename:function
9)刪除斷點: delete+數值識別符號(從第7點可得到) (不加引數,刪除所有斷點), clear使用跟第8點對應
10)禁用斷點:disable+數值識別符號 (重新啟用 enable)
11)在單步時跳出函式:finish
12)在單步時跳出迴圈:until
13)條件斷點:break break-arg if (condition),例: break main if argc > 1
14)斷點命令列表(到斷點自動執行):
commands breakpoint-number 例子:commands 1
... >printf "i = %d", i
commands >end
enda) 在commands 中加入silent,過濾到其他無用的輸出。
b) 最後乙個commands是continue的話,自動continue。
例:comands 1
> silent
> printf "i = %d", i
> continue
> end
15)檢視區域性變數:info locals 得到當前棧中所有區域性變數的值列表
16)設定變數:set x=12
17)gdb執行緒命令:
a) info threads(給出當前所有的執行緒資訊)
b) thread 3(切換檢視執行緒)
c) break 88 thread 3(當執行緒3到達源**行88時停止執行)
d) break 88 thread 3 if x == y
18) 您可以以程序id作為第二個引數,以調式乙個正在執行的程序
gdb 程式名 1234
注意點:
1)重新編譯檔案時不要退出gdb,斷點可以儲存著。
2)在除錯時不要開啟優化**的選項,不然經過了優化,設定的斷點的位置跟編譯後的位置相差可能很大。
《軟體測試的藝術》學習記錄
軟體測試的藝術 測試是發現錯誤而執行程式的過程 一.端正自己的態度 測試是為了發現錯誤而執行程式。而不是證明軟體不純在錯誤。黑盒測試 資料驅動測試或輸入 輸出驅動測試 不太可能實現,1.經濟學2.邏輯上 窮舉輸入測試 將可能的輸入條件當測試用。白盒測試 邏輯驅動測試 不太可能實現1.邏輯路徑太多2....
程式設計藝術學習筆記(1)
序言習題 1 通過一系列的替代,將四個變數的值 a,b,c,d 變為 b,c,d,a 用最少的步驟 開門菜,然而還是有很多值得思考的地方。能幫助人理解計算機對於賦值的操作。通過觀察,可以認為這是乙個a i 賦值給a i 1 的操作。最少的步驟,只需要五步即可。需要乙個t來作輔助,t a,a b,b ...
《Oracle程式設計藝術》學習筆記 23 段
段就是占用儲存空間的資料庫物件,占用儲存空間的每乙個物件最後都會儲存在乙個段中,如表 索引 回滾段等。段的型別 1 表段 2 表分割槽段 table partition 或子分割槽段 subpartition 這種段型別用於分割槽,與表段很相似。分割槽表由乙個或多個分割槽段 table partit...