———《軟體除錯實戰》
1.**評審: 通過閱讀**來檢查源**與編碼標準的符合性以及**質量的活動;
白盒測試:是通過程式的源**進行測試而不使用使用者介面。這種型別的測試需要從**句法發現內部**在演算法,溢位,路徑,條件等等中的缺點或者錯誤,進而加以修正;
黑盒測試:又被稱為功能測試、資料驅動測試或基於規格說明的測試,是通過使用整個軟體或某種軟體功能來嚴格地測試, 而並沒有通過檢查程式的源**或者很清楚地了解該軟體的源**程式具體是怎樣設計的。測試人員通過輸入他們的資料然後看輸出的結果從而了解軟體怎樣工作。
2.在程式崩潰時執行棧跟蹤
c/c++程式的棧是乙個記憶體片段,用來儲存每個活動的函式的棧幀(stack fram)。棧幀由返回位址、函式引數和區域性變數組成。
棧跟蹤(stack trace)是乙個實際的棧幀鏈,這個鏈從偵錯程式當前停止或暫停的最頂部函式開始,向下一直到main()函式。當潛入函式條用太長,造成棧沒有足夠空間來儲存當前幀棧時,就發生了棧溢位。
除了在源**中顯示程式崩潰的位置外,偵錯程式還顯示幀棧和崩潰的棧跟蹤。棧跟蹤是用於除錯程式崩潰位置的有用資訊,因為他可以告訴我們導致崩潰的函式的函式呼叫鏈。
gdb偵錯程式通過編號來引用幀棧,其中當前幀棧編號為0, mian()函式的幀棧標號最高。
gdb幀棧跟蹤命令是backtrace(bt), where
, 在gdb中通過命令up,down
,來切換檢視其它幀, 或直接通過命令frame fra_num
, 切換到其它幀檢視,或設定斷點等。
3檢視程式執行的時間
real: 程式從開始到結束實際所用的時間;
user: 程式的使用者cpu時間,即cpu計算時間
sys: 系統呼叫所花時間。
4追蹤程式的庫函式與系統函式呼叫:strace;
make實用程式管理linux/unix系統上的編譯和構建;
5資訊重定向如:
$ trace ./insert 12 5 18 1> note.txt 2>&16 將gdb附加到執行的程式:(gdb) attach pid將標準輸出重定向到檔案note.txt,同時將標準錯誤輸出重定向到標準輸出,及標準輸出與標準錯誤輸出均輸出至檔案note.txt中;
重定向 >
方法一:首先執行程式並保持程式等待,然後在另乙個視窗中檢視程序id,
ps aux | grep executable_filename
, 啟動gdb( 無需引數)進入gdb介面,然後執行:(gdb) attach pid
方法二:$ gdb filename peocess_id
將gdb附加到執行的程式
基礎知識6
position位置 position relative left 100px top 100px position absolute left 100px top 100px position relaitive 如果設定值了,相對原來的位置進行調整 二者區別 1.absolute會脫離標準流,r...
linux基礎知識 6
老陌終於要開始學習命令了。之前老陌說過重定向的問題,把傳送到stdout的資料流,到檔案中。cat etc os release 1.txt把結果送到1.txt中,但這裡要注意如果檔案已經存在則覆蓋,如果不想覆蓋,而是接著輸入 追加 需要用 對於追加如果檔案之前不存在則自動建立。echo是命令,後面...
軟 件 測 試 基 礎 知 識
軟體效能指標主要有響應時間,系統響應時間和應用延遲時間,吞吐量,併發使用者數,資源利用率五種。軟體實現的演算法與系統響應時間和應用延遲時間是直接相關的,所以軟體的效能也必定與實現演算法是有關係的吞度量是指系統在單位時間內處理請求的數量,對於無鬢髮的應用系統而言,吞度量是與響應時間嚴格的反比關係,因為...