對於多執行緒應用程式的除錯 ,各開發工具都有良好的支援,使用廣泛的為windows下vs及unix下的gdb。
ms對vs除錯多執行緒程式給出了詳細的幫助手冊,可以在msdn中搜尋:setthreadname(設定執行緒名稱)中找到相關頂級主題:除錯多執行緒應用程式
ms-help:
以下文字摘自msdn:
執行緒是作業系統向其分配處理器時間的指令序列。在作業系統中執行的每個程序都包含至少乙個執行緒。包含多個執行緒的程序稱為多執行緒。
具有多個處理器、多核處理器或超執行緒程序的計算機可以同時執行多個執行緒。並行處理多個執行緒可以極大地提高程式效能,但是,由於需要跟蹤多個執行緒,也使得除錯更加困難。
此外,多執行緒處理會引入某些新型別的潛在 bug。例如,通常會有兩個或更多執行緒必須訪問同一資源,但是一次只能有乙個執行緒可以安全地訪問該資源。必須使用某種形式的互斥以確保一次僅有乙個執行緒訪問資源。如果互斥執行不正確,則可能形成死鎖條件,這種條件下,任何執行緒都無法執行。對於除錯而言,死鎖是特別難解決的問題。
visual studio 2008 提供了改進的「執行緒」視窗及其他使用者介面改進,旨在簡化多執行緒除錯。若要了解新的執行緒處理介面功能,最佳方式就是執行演練。請參見
演練:除錯多執行緒應用程式。
visual studio 還提供功能強大的斷點和跟蹤點,在除錯多執行緒應用程式時,它們十分有用。可以使用斷點篩選器將斷點置於單個執行緒上。請參見
如何:指定斷點篩選器
除錯具有使用者介面的多執行緒應用程式可能會特別困難。在這種情況下,可以考慮在另一台機器上執行應用程式並使用遠端除錯。有關資訊,請參見
安裝遠端除錯
。如何:使用「執行緒」視窗
通過「執行緒」視窗除錯執行緒的實用過程。
如何:在除錯時切換到另乙個執行緒
將除錯上下文切換到其他執行緒的三種方法。
如何:標記執行緒和取消標記執行緒
在除錯過程中,標記要格外關注的執行緒,或為其設定標誌。
如何:在本機**中設定執行緒名稱
為在「執行緒」視窗中檢視的執行緒提供乙個名稱。
如何:在託管**中設定執行緒名稱
為在「執行緒」視窗中檢視的執行緒提供乙個名稱。
演練:除錯多執行緒應用程式
. 一部關於執行緒除錯功能的指導教程,重點介紹如何使用 visual studio 2008 的功能。
如何:在高效能群集上進行除錯
對執行於高效能群集上的應用程式進行除錯的技術。
除錯本機**中的執行緒時的提示
對於除錯本機執行緒十分有用的簡單技術。
如何:指定斷點篩選器
如果要將乙個斷點置於單個執行緒上,可以使用斷點篩選器。
如何:指定跟蹤點/斷點操作
使用跟蹤點可以在不中斷的情況下跟蹤程式的執行。對於研究死鎖之類的問題,這一點十分有用。
託管執行緒處理
.net framework 程式設計中的執行緒處理概念,包括示例**。
元件中的多執行緒處理
如何在 .net framework 元件中使用多執行緒處理。
多執行緒處理 (visual basic)
針對 visual basic 程式設計師的執行緒處理概念和示例**。
使用執行緒處理(c# 程式設計指南)
針對 c# 程式設計師的執行緒處理概念和示例**。
多執行緒處理
針對使用 mfc 的 c++ 程式設計師的執行緒處理概念和示例**。
如何:除錯遠端群集應用程式
有關如何為執行於高效能群集上的應用程式設定遠端除錯的說明。
概念使用執行緒和程序
安裝遠端除錯
more:
除錯多執行緒應用程式
對於多執行緒應用程式的除錯 各開發工具都有良好的支援,使用廣泛的為windows下vs及unix下的 ms對vs除錯多執行緒程式給出了詳細的幫助手冊,可以在msdn中搜尋 setthreadname 設定執行緒名稱 中找到相關頂級主題 除錯多執行緒應用程式 ms help 以下文字摘自msdn 執行...
建立多執行緒應用程式
定義命名空間在.net中,多執行緒功能是在system.threading命名空間中定義的。usingsystem.threading 啟動執行緒system.threading命名空間中的thread類代表乙個執行緒物件,用這個類物件可以建立新的執行緒,刪除 暫停和恢復執行緒。下面的 使用thre...
建立多執行緒應用程式
定義命名空間 在.中,多執行緒功能是在system.threading命名空間中定義的。usingsystem.threading 啟動執行緒 system.threading命名空間中的thread類代表乙個執行緒物件,用這個類物件可以建立新的執行緒,刪除 暫停和恢復執行緒。下面的 使用threa...