您可以使用「除錯」視圖來管理程式的除錯工作。 此視圖會顯示您所除錯的每一個目標已暫停的執行緒堆疊。 對於您正在除錯的每一個程式或應用程式,「除錯」視圖中會顯示除錯目標(與執行緒和堆疊框相關聯)。
下圖說明「除錯」視圖中典型的除錯目標:

在「除錯」視圖中,頂端節點層次上會顯示用來啟動程式的除錯階段作業的啟動配置(圖中的指標 A)。 啟動配置下方會顯示一個代表除錯引擎的節點(圖中的指標 B)。 接著會顯示程式中的每一個執行緒(圖中的指標 C)。 當程式停止執行時,依預設,停止執行緒的節點會自動展開來顯示堆疊框(圖中的指標 D)。 如果您手動展開其他執行緒,則在程式下次暫停時,將會自動展開這些執行緒。 最後會顯示一個代表正在除錯的程序和程式的節點(圖中的指標 E)。
當程式暫停執行時,編輯器中會開啟選取的堆疊框的程式檔,並反白程式即將執行的程式檔行。 如果程式中有許多執行緒,則造成停止的執行緒的堆疊可能會超出除錯框的尾端。
「除錯」視圖也可以用來設定除錯器常駐程式。 如需相關資訊,請參閱接聽除錯引擎的相關主題。
您可以在「除錯」視圖中執行下列基本的除錯動作:
)或按 F8。
)或按 Shift+F8
- 或用滑鼠右鍵按一下您要終止的除錯目標(或目標的其中一個執行緒或堆疊),然後選擇其中一個終止動作。
)。
視如何啟動您除錯的程式而定,也可能無法使用這個動作。
)(Ctrl+F8) 來中止執行。
應用程式中的所有執行緒會暫停,直到您發出回復動作為止。
當您發出暫停動作時,除錯引擎會將 SIGSTOP 傳送給您正在除錯的程式。
當您有無法掌控的程序一直執行而未停在岔斷點時,中止就很有用。 藉由中止執行,您可以重新掌控應用程式。 當您中止程式時,程式通常會停在編輯器的「反組譯程式碼」視圖中。
當執行緒暫停時,您可以利用逐步控制項來逐行執行程式。 在執行逐步作業時,如果遇到岔斷點或事件,則會在岔斷點或事件上暫停執行,逐步作業到此結束。 您可以使用逐步指令在您的程式中逐步地一次執行單一指令或位置。
有下列逐步指令可用:
)(F6):
當您發出執行過副程序指令時,程式會逐步執行至下一行程式碼。
)(F5):
當您發出進入副程序指令時,程式會逐步執行至下一個陳述式。
如果現行行會呼叫另一個函數,則除錯器會停在該函數上。
這個指令的行為受到使用逐行過濾器動作的影響(
)(Shift+F5)。
如果過濾器已停用(未選取按鈕),則除錯器會停在被呼叫的函數中,即使不含除錯資訊也一樣,且一定會顯示反組譯程式碼。
如果過濾器已啟用(已選取按鈕),則只有在可以顯示程式檔時,除錯器才會停在被呼叫函數的函數中。
如果無法顯示程式檔,則情況就像發出執行過副程序一樣。
DER_DBG_STEP_DEBUG 除錯引擎環境變數會影響使用逐行過濾器動作的行為。
如需除錯引擎環境變數的相關資訊,請參閱相關主題。
)(F7):
當您發出跳出副程序時,則程式會立即執行至呼叫端程式中在呼叫現行函數之後的位置。
通常會停在呼叫指令之後的位置。
如果呼叫端程式具有除錯資訊,則可能位於程式行中間。