這系列文章,以 Visual C 為例,主要提一下目前 IDE 在協助 Debug Trace 時,可能會提供哪些功能由於手邊較常用的是 Visual Studio,故以 Visual Studio 為例這裡的說明,是我較常用到的技巧,其實有跳過一些比較少用的 processthreadmodule
- 9月 13 週二 201101:40
[Debug] Debug 技巧目錄
- 9月 13 週二 201101:15
[Debug] Visual C 條件式中斷

壹 條件式中斷
#include stdio.h
int main
int i, array100;
arrayi=i; / break point here /
中斷點下好時,先別用 F5 偵錯執行,在該行按右鍵 - 中斷點 - 條件
直接輸入中斷條件,完成按確定
好了之後再以 F5 偵錯執行
- 9月 09 週五 201116:24
[Debug] Visual C 記憶體監看

壹記憶體視窗簡易操作
以 malloc / new 而言,無法使用監看式方式查看記憶體內含值,此時必須藉助記憶體視窗監看考慮以下程式碼
#include stdio.h
#define N 10
int main
int i, arrN;
雖可以監看式觀查靜態陣列 arry,但此處以記憶體方式監
- 9月 09 週五 201103:07
[Debug] Visual C look up array / container

壹 靜態陣列 與 動態陣列 監看
針對一般靜態陣列而言,大多數附 debug 功能之 IDE 都有此功能,且查看非常方便
#include stdio.h
int main
int z234 =
1,2,3,4 ,5,6,7,8 ,9,10,11,12 ,
13,14,15,16
- 9月 07 週三 201123:27
[Debug] Visual C 設立中斷點 / 切換堆疊技巧

壹 設定變數變更中斷
假設一段程式,執行1000次隨機數,若隨機數為 100 之倍數,將 counter 1 ,
這次要觀查的是 counter 之變化 程式碼中之 sum 程式碼如下
#include stdio.h
#include stdlib.h
#include time.h
int m
- 9月 07 週三 201102:46
[Debug] Visual C 監看視窗使用技巧

壹自動變數
在 逐步 Trace 之概述裡面有提到,呼叫監看視窗是以自動變數方式觀查,
但實際上用自動變數非常不方便觀查,
因自動變數 scope 變化甚大,很可能只顯示一行指令裡,用到的變數值而已
假設 程式碼以下述為例
1. 一開始便以逐步 trace F10 方式進行時,在進入 main 時,
- 8月 30 週二 201112:57
[Debug] Visual C 逐步執行 與 不進入函式 差異

在 上篇文章 中,已概述如何進行 trace,第四步驟提到的是不進入函式方式執行,
但實際上還有另一逐步執行選項,本文簡略說明其差異
#include stdio.h
int main
以這份程式碼而言,斷點設在 int i=0... 那行,接下來若一直進行逐步執行,快捷鍵 F11,到 pri
- 8月 30 週二 201112:27
[Debug] Visual C 逐步Trace (概述)

一堆人都說,擅用 IDE,逐步執行,追蹤結果,我也常和 Visual C 使用者這麼說
有時問別人會不會 Trace,得到的答案是會 Trace,事實似乎並非如此,
這裡做簡單簡介,一些細節差異,日後於他文補充
1 . 設斷點
#include stdio.h
int main
假設要觀查的是
- 8月 30 週二 201111:41
[Debug] Visual C Assert

1. assert 函式
一般在做 trace 時,似乎比較少人用到 assert,assert 裡面放的判斷是,如果不成立的話,程式便不會繼續執行下去以下述程式碼而言
#include stdio.h
#include assert.h
int main
執行時將出現以下視窗
console
