2011-01-27 54 views
9

如何在Visual Studio中轉儲或搜索所有線程的調用堆棧?我們有一個服務器進程進行調試,並且有數百個線程正在運行,所以手動檢查每個線程應該很困難。如何轉儲或搜索Visual Studio中所有線程的調用堆棧

我知道gdb中的「thread apply」可以做這種事情。所以我想知道在Visual Studio的調試器中是否有類似的東西。

另外我使用的是visual studio 2005,所以請給VS 2000解決方案(在VS 2010中提供所有調用堆棧的搜索...)。

回答

2

後來我發現,通過使用WinDbg的答案,

首先保存VS調試會話,比如一個轉儲,myapp.dmp

然後使用以下命令轉儲所有調用堆棧到out.txt

CDB -zc:\ myapp.dmp -logo out.txt -lines -c 「〜* KB; q」 -YC:\符號

14

我有同樣的問題,也是在VS2005。我發現了一個簡單的解決方案: 在調試打開VS的命令行窗口,然後使用命令: Debug.ListCallStack/AllThreads

我發現這上: http://blogs.msdn.com/b/greggm/archive/2005/08/02/446899.aspx

+0

好,但也警告說,它似乎只打印帶有託管ID的線程。它不包含純原生線程。 – Weeble 2011-05-27 09:04:05

相關問題