之前面試的時候有遇到過乙個問題,當覆蓋率偏低的時候,對於測試用力無法覆蓋的部分,有沒有什麼辦法可以實現覆蓋,當時沒答上來,後來了解了可以通過gdb除錯的方法來實現**流程的控制。
先來看一段**。
#include#includeint main(void)
else
}return 0;
}
這段**裡else裡的**是永遠不會被跑到的。但是可以通過gdb,來進行引數的修改,從而達到進入該**塊的目的。
首先說下用gdb啟動程序的方法:
1.直接gdb *.exe
2.執行gdb 通過attach pid的方法來跟蹤**;
3.gdb *.exe pid方法
pid可以通過top或者ps獲得。
常用的gdb指令有b(breakpoint),r(run),n(next),s(step),c(continue),bt(檢視函式堆疊),p(print)
修改變數需要使用到的就是p,例如本例中,可以設定斷點在第9行,通過p i指令看到i的值為0,然後通過p i=1指令來修改i的值,從而進入else分支。
指標初接觸
指標是強大的c語言工具 指標指向位址 1.定義指標 使用指標之前要定義指標,與int,char,float類似的定義方式,不過要在定義型別和指標名之間加乙個 號來表示定義的是指標,不帶 號會導致定義的為變數而非對應型號的指標。2.初始化指標 使用指標之前還要初始化指標,否則指標有可能會覆蓋掉資料 我...
三 sqlldr初接觸
只記錄一些學習時看到和自己用到的sqlldr 控制檔案內命令 定長字串處理 into table a col1 position 1 5 第1到第5,5個字元 col2 position 1,7 第6 5 1,表示上乙個結束的位置,1為偏移量 到第7,2個字元 字串處理命令 舉例 into tabl...
DOS命令初接觸
首先是幾個最常見的命令 1 cd 顯示當前目錄,或者更改 但是想要轉向c盤的program files資料夾是,發現總是找不到檔案,後來發現,原來會預設到c盤的個人資料夾中 可以使用cd 命令,返回到最上級的目錄,即可以到c盤的目錄,可以在根目錄找 program files 資料夾 2 md ma...