Share via


在 Visual Studio 中偵錯多執行緒應用程式

執行緒是作業系統配置處理器時間的指令序列。 在作業系統中執行的每個處理序都包含至少一個執行緒。 具有一個以上執行緒的處理序就稱為多執行緒。

具有多個處理器、多重核心處理器或超執行緒處理器的電腦,可以同時執行多個執行緒。 多個執行緒的平行處理可以大幅改進程式效能,但由於帶來了追蹤多個執行緒的需要,也可能會增加偵錯的困難度。

除此之外,多執行緒也帶來一些新類型的潛在錯誤。 舉例來說,常常有兩個以上的執行緒必須存取相同資源,但同時間只有一個執行緒能夠安全存取該資源。 所以某些形式的互斥是必要的,才能確保同時間只有一個執行緒在存取該資源。 如果執行互斥的方式不正確,就可能產生「死結」(Deadlock) 的情況,造成沒有執行緒能夠執行。 在偵錯時死結可能會是個特別難處理的問題。

Visual Studio 2012 提供改良的 [執行緒] 視窗、新的 [GPU 執行緒] 視窗、新的 [平行監看式] 視窗,以及其他使用者介面的改進,可讓多執行緒的偵錯更加容易。了解新執行緒介面功能最好的方式,就是執行逐步解說。 請參閱逐步解說:偵錯多執行緒應用程式逐步解說:偵錯 C++ AMP 應用程式

Visual Studio 同樣提供強大的中斷點和追蹤點,這在您對多執行緒應用程式進行偵錯時非常實用。 您可以使用中斷點篩選條件,將中斷點放置在個別執行緒上。 請參閱中斷點:在 Visual Studio Debugger 中使用叫用次數、呼叫堆疊函式和條件,隨時隨地中斷執行

偵錯具有使用者介面的多執行緒應用程式可能會特別地困難。 在這種情況下,您可以考慮在第二部電腦上執行該應用程式,並使用遠端偵錯。 如需詳細資訊,請參閱 遠端偵錯和診斷

在本節中

相關章節

請參閱

其他資源

在 Visual Studio 中偵錯執行緒和處理序

遠端偵錯和診斷