使用中斷點和追蹤點
這個主題適用於:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro、Premium 和 Ultimate |
本主題提供中斷點的一些基本資訊:
中斷點圖像
基本中斷點
一行程式碼中的多個中斷點
進階中斷點
中斷點限制
中斷點圖像
原始檔視窗和 [反組譯碼] 視窗會在左邊界中顯示稱為「圖像」(Glyph) 的符號,以顯示中斷點位置。 下列表格描述這些圖像。
如果將滑鼠放在中斷點圖像上,便會顯示提供詳細資訊的中斷點秘訣。 這些資訊針對錯誤和警告中斷點特別有用。
圖像 |
說明 |
---|---|
一般中斷點。 實心圖像表示已經啟用中斷點。 中空圖像表示已經停用中斷點。 |
|
進階中斷點。 使用中/停用。 加號 (+) 表示中斷點至少附加一個進階功能 (例如條件、叫用次數或篩選條件)。 |
|
對應的中斷點。 使用中/停用。 中斷點設定在 ASP/ASP.NET 程式碼中,並且對應到相對的 HTML 網頁上的中斷點,或設定在伺服器端指令碼檔案中,並且對應到客戶端指令碼檔案。 |
|
追蹤點。 使用中/停用。 叫用這個追蹤點會執行指定動作,但是不會中斷程式執行。 |
|
進階追蹤點。 使用中/停用。 加號 (+) 表示追蹤點至少附加一個進階功能 (例如條件、叫用次數或篩選條件)。 |
|
對應追蹤點。 使用中/停用。 追蹤點是設定在 ASP/ASP.NET 程式碼中,並且對應至相對應的 HTML 網頁追蹤點。 |
|
中斷點或追蹤點錯誤。 X 表示因為錯誤條件而無法設定中斷點或追蹤點。 |
|
中斷點或追蹤點警告。 驚嘆號表示因為暫時的狀況而無法設定中斷點或追蹤點。 通常,這表示尚未載入中斷點或追蹤點位置的程式碼。 如果您附加至處理序,但未載入處理序的符號,則也會看到這個警告。 載入程式碼或符號時,將會啟用中斷點然後變更圖像。 |
基本中斷點
最基本的中斷點是設定在原始程式碼行或函式的中斷點。 下列主題描述如何設定和使用這些基本中斷點:
注意事項 |
---|
如果一個原始程式檔中有超過 64,000 行程式碼,則不會叫用第 64,000 行之後的中斷點。 |
一行程式碼中的多個中斷點
有時,一行程式碼中會包含一個以上的可執行陳述式。 在這些情況下,您可以在該行設定多個中斷點。 包含目前選取之中斷點的程式碼陳述式,周圍會出現一個方塊。 這個對話方塊有助於區分在同一行程式碼上的多個中斷點。 您可以在 [中斷點] 視窗中選取中斷點,或在原始檔視窗中按一下包含中斷點的陳述式。
進階中斷點
如果您有任何版本的 Visual C++ Express 或 Visual Studio,您可以設定更進階的中斷點、使用進階功能建立中斷點,以及以更強大的方式使用中斷點。
當您安裝 Visual Studio 時,選擇預設的 IDE 設定可能會隱藏某些工作的必要功能表命令。 如需詳細資訊,請參閱 HOW TO:還原隱藏的偵錯工具命令。
記憶體位址和記憶體變更的中斷點
您可以在記憶體位址設定中斷點。 如需詳細資訊,請參閱 HOW TO:設定位址中斷點。 在 C/C++ 中,您可以設定當記憶體變更時叫用的中斷點。 如需詳細資訊,請參閱 HOW TO:設定資料中斷點 (僅限原生)。
篩選條件、叫用次數和條件
篩選條件、叫用次數和條件是能夠附加至任何類型之中斷點的進階功能,其中包含追蹤點。
篩選條件會導致在指定電腦、處理序和執行緒上設定中斷點。 當您偵錯在數個處理器上執行的應用程式時,篩選條件就非常有用。 如需詳細資訊,請參閱 HOW TO:指定中斷點篩選條件。
叫用次數會持續追蹤叫用中斷點的次數。 根據預設,每次叫用中斷點則會中斷執行。 您可以變更這項行為,指定只在叫用次數等於或超過指定值,或叫用次數是指定值的倍數時,中斷點才會進行中斷動作。 指定的叫用次數只會保留給偵錯工作階段。 如需詳細資訊,請參閱 HOW TO:指定叫用次數。
條件是用來評估中斷點是否要中斷的運算式。 如需詳細資訊,請參閱 HOW TO:指定中斷點條件。
進階中斷點介面
進階使用者可以利用下列主題所述進階功能的優點:
中斷點限制
當您對混合模式、原生和 Managed 程式碼進行偵錯時,請避免在系統元件上設定中斷點。 在混合模式偵錯進行當中,對系統元件設定中斷點可能會造成 Common Language Runtime 中斷,以及偵錯工具停止回應。 如需詳細資訊,請參閱 HOW TO:偵錯混合模式應用程式。
除非逐步執行呼叫,否則偵錯工具不會自動附加至 XML Web 服務。 這表示除非您逐步執行呼叫,否則並不會觸及 XML Web 服務中設定的任何中斷點。 如果您不是使用 [逐步執行],反而試圖使用 [開始偵錯] 或 [繼續] 來執行中斷點,就不會觸及中斷點。
如需指令碼檔案中所對應之中斷點的限制的詳細資訊,請參閱指令碼偵錯的限制。