1. 程式人生 > >VS2010下多執行緒的除錯(來自MSDN)

VS2010下多執行緒的除錯(來自MSDN)

使用“執行緒”視窗

“執行緒”視窗包含每行表示應用程式中一個執行緒的表。 預設情況下,該表列出應用程式中的所有執行緒,但您可以篩選列表以僅顯示您感興趣的執行緒。 每列都包含不同型別的資訊。 您還可以隱藏某些列。 如果顯示所有列,將從左到右顯示以下資訊:

標誌列,您可以在此處標記要格外關注的執行緒。

活動執行緒列,此處黃色箭頭指示一個活動執行緒。 箭頭的輪廓指示執行在偵錯程式中分解的執行緒。

“ID”列,包含每個執行緒的標識號。

“託管 ID”列,包含託管執行緒的託管標識號。

“類別”列,將執行緒劃分為使用者介面執行緒、遠端過程呼叫處理程式或輔助執行緒。 一個特殊類別標識應用程式的主執行緒。

“名稱”列,如果有執行緒,則按名稱標識每個執行緒,否則標識為“<無名稱>”。

“位置”列,顯示執行緒執行的位置。 可以展開此位置以顯示執行緒的完整呼叫堆疊。

“優先級別”列,包含系統已向每個執行緒分配的優先順序。

“關聯掩碼”列,高階列,通常隱藏。 此列顯示每個執行緒的處理器關聯掩碼。 在多處理器系統中,關聯掩碼確定執行緒可以在哪些處理器上執行。

“已掛起”列,包含掛起項計數。 此計數確定執行緒是否可以執行。

“程序名稱”列,包含每個執行緒所屬的程序。 在除錯多個程序時,此列會很有用,但此列通常隱藏。

切換活動執行緒

任意執行以下步驟之一:

           雙擊任一執行緒。

           右擊一個執行緒,再單擊“切換到執行緒”。

           黃色箭頭會出現在新活動執行緒的旁邊。 箭頭的灰色輪廓標識執行在偵錯程式中分解的執行緒

顯示執行緒呼叫堆疊

在多執行緒程式中,每個執行緒都有自己的呼叫堆疊。 “執行緒”視窗提供了一種檢視這些堆疊的簡便方法。

檢視執行緒的呼叫堆疊,在“位置”列中,單擊執行緒位置旁邊的倒三角形。 此位置將展開以顯示執行緒的呼叫堆疊。 

擴充閱讀: 使用Visual Studio 2010除錯並行程式        Visual Studio 2010對並行程式的除錯提供了強大的手段,給程式設計好斷點以後,可以使用Threads視窗檢視當前程式的所有執行緒:
       在圖 19‑9中雙擊某行,可以讓指定的執行緒成為當前“啟用”的“被除錯”的執行緒。               另外,Parallel Tasks視窗展示了當前程式所執行的所有任務: 在Parallel Stacks視窗中,則可以直觀地看到每個執行緒的呼叫堆疊: 有關Visual Studio 2010偵錯程式的使用方法,請查詢MSDN。本書不再贅述。

另外,

    擴充閱讀: 使用Visual Studio 2010除錯並行程式        Visual Studio 2010對並行程式的除錯提供了強大的手段,給程式設計好斷點以後,可以使用Threads視窗檢視當前程式的所有執行緒:        在圖 19‑9中雙擊某行,可以讓指定的執行緒成為當前“啟用”的“被除錯”的執行緒。               另外,Parallel Tasks視窗展示了當前程式所執行的所有任務: 在Parallel Stacks視窗中,則可以直觀地看到每個執行緒的呼叫堆疊: 有關Visual Studio 2010偵錯程式的使用方法,請查詢MSDN。本書不再贅述。