分享方式:


在 Visual Studio 中使用 IntelliTrace 歷程偵錯來檢查您的應用程式 (C#、Visual Basic、C++)

您可以使用歷程偵錯,向後和向前逐步執行您的應用程式並檢查其狀態。

您可以在 Visual Studio Enterprise 版本 (而非 Professional 或 Community 版本) 中使用 IntelliTrace。

讓我們從內含 BUG 的簡單程式開始。 在 C# 主控台應用程式中,加入下列程式碼:

static void Main(string[] args)
{
    int testInt = 0;
    int resultInt = AddIterative(testInt);
    Console.WriteLine(resultInt);
}
private static int AddIterative(int j)
{
    for (int i = 0; i < 20; i++)
    {
        j = AddInt(j);
    }
    return j;
}

private static int AddInt(int add)
{
    if (add == 10)
    {
        return add += 25;
    }
    return ++add;
}

我們假設呼叫AddIterative()之後的resultInt預期值是 20 (遞增 testInt 20 次的結果)。 (我們也假設您看不到 AddInt() 中的錯誤 (bug))。 但結果其實是 44。 如何在不逐步執行 AddIterative() 10 次的情況下找到 Bug? 我們可以使用歷程偵錯更迅速且更輕鬆地找到 BUG。 方法如下:

  1. [工具] > [選項] > [IntelliTrace] > [一般] 中,確定已啟用 IntelliTrace,然後選取 [IntelliTrace 事件和呼叫資訊]。 如果您未選取此選項,則無法看到巡覽邊 (如下所述)。

  2. Console.WriteLine(resultInt); 行上設定中斷點。

  3. 開始偵錯。 程式碼會執行到中斷點。 在 [區域變數] 視窗中,您可以看到 resultInt 的值是 44。

  4. 開啟 [診斷工具] 視窗 ([偵錯] > [顯示診斷工具])。 程式碼視窗應該如下所示:

    Code window at the breakpoint

  5. 您應該會在左邊界旁邊看到雙箭頭,就在中斷點正上方。 這個區域稱為巡覽邊,並用於歷程偵錯。 按一下箭頭。

    在程式碼視窗中,您應該會看到前一行程式碼 (int resultInt = AddIterative(testInt);) 加上粉紅色。 在視窗上方,您應該會看到一則訊息,指出您正在使用歷程偵錯。

    程式碼視窗現在如下所示:

    code window in historical debugging mode

  6. 現在您可以逐步執行 AddIterative() 方法 (F11,或巡覽邊中的 [逐步執行] 按鈕)。 逐步往前執行 (F10,或巡覽邊中的 [移至下一個呼叫])。 粉紅色行現在位於 j = AddInt(j); 行。 在此情況下,F10 不會逐步執行下一行程式碼。 而是會逐步執行至下一個函式呼叫。 歷程偵錯呼叫會巡覽不同的呼叫,並略過不包括函式呼叫的程式碼行。

  7. 現在會逐步執行 AddInt() 方法。 您應該會立即看到此程式碼中的 Bug。

這個程序只會大略探討您可以如何使用歷程偵錯。