c 除錯技巧

2021-10-01 22:45:21 字數 1148 閱讀 9286

大家都知道,打斷點是最為大家所熟知的除錯技巧,但是除了打斷點,還有哪些除錯的技巧呢?

system.diagnostics;這個命令空間裡有很多可供除錯的類庫。diagnostics這個單詞的意思是診斷,在軟體的世界裡就是診斷程式存在的問題,即除錯。下面為大家介紹這個類庫里幾個非常實用的方法,這幾個方法只在debug模式下被編譯,而在release模式下是不會被編譯。

這個函式可以輸出程式中物件的值。輸出的值需要在vs工具欄檢視=》輸出視窗裡檢視。

它可以在程式執行時真實顯示變數的值,當然有人可能會說:打斷點也可以啊。但是打斷點這個方法在多執行緒、頻繁進入某個方法體的情況下很難除錯,因為斷點會阻塞當前執行緒的執行,會影響變數真實的值。

斷言。函式宣告:public static void assert(bool condition, string message);

它還有其他的過載方法,我只是拿乙個最常用的來舉個例子。

當condition為false時,命中斷言。message字串是對當前異常情況的描述。

當命中斷言時,系統會彈出乙個對話方塊引起你的重視。值得注意的是,如果你不對這個對話方塊做任何處理,程式會一直阻塞。

有的人可能會說,把錯誤記錄到日誌中就可以了。但是需要引起特別關注的錯誤也需要能引起人特別關注的方法。

這種方法適用於意料以外的情況。比如:你在配置檔案中新增了某個配置項,但是在用**查詢這個配置項的時候卻找不到,這種情況就是意料之外的。

把錯誤寫入到錯誤日誌中也是查詢問題的一種有效方法,這種方法適用於意料之中的錯誤。

比如你覺得某段**可能會發生錯誤,在這段**外面加上try/catch,然後在catch**塊裡面把錯誤資訊寫入到日誌。

但這種方法使人察覺錯誤的速度很慢,可能要等到程式沒有達到預期的效果時才會意識到要去檢視日誌。

有些錯誤一旦發生,必須當時引起人的注意。比如:程式在開啟的時候會初始化所有的裝置,一旦某個裝置初始化失敗,後面的程式就無法執行,程式會持續不斷的報錯,根本無法執行。這種情況下,錯誤資訊必須在開啟程式之後被人看到,如果有錯誤,需要立刻解決這個錯誤,程式才能一直正常執行。

這個函式的功能和debug.writeline很相似,區別在於它在release模式下也可以列印資訊。

C 除錯技巧

在c 中有時會用到類似於標頭檔案保護的技術,以便有選擇的執行除錯 基本思想是,程式可以包含一些用於除錯的 但是這些 只在開發程式的時候使用。當應用程式編寫完成準備發布時,要先遮蔽掉除錯 這種方法用到了兩種預處理功能 assert和ndebug。assert預處理巨集 assert是一種預處理巨集。所...

c 除錯技巧

看書的時候,結合自己不足一年的程式設計經驗,寫出來的乙個還算是比較基礎的c 除錯經驗的總結。1 重現bug 要重現bug,首先採用與bug第一次出現時完全相同的輸入。注意不要只執行觸發操作,因為bug 可能是由整個操作序列產生的。當能一致地重現這個bug時,應嘗試找出觸發這個bug的最小序列 可以從...

C 除錯技巧總結

1 條件中斷 for inti 0 i 100 i 第一種方法 執行輸出要i等於50,當開始執行for迴圈時,直接將i的值改為49,然後在執行。第二種方法 對if i 50 斷點執行進行條件設定為 i 50,然後按f5直接到條件i為50,則進入輸出語句 或者設定命中次數,選擇中斷,條件命中次數等於4...