如何在Visual Studio中转储或搜索所有线程的调用堆栈

时间:2011-01-27 04:09:05

标签: multithreading debugging visual-studio-2005 callstack

如何在Visual Studio中转储或搜索所有线程的调用堆栈?我们有一个服务器进程要调试,它有数百个线程在运行,所以应该很难手动检查每个线程。

我知道gdb中的“线程应用”可以做这种事情。所以我想知道visual studio的调试器中是否有类似的东西。

我也在使用visual studio 2005,所以请为VS 2005提供解决方案(在VS 2010中提供所有调用堆栈的搜索......)。

2 个答案:

答案 0 :(得分:15)

我在VS2005中遇到了同样的问题。我找到了一个更简单的解决方案 调试时打开VS的命令窗口并使用命令: Debug.ListCallStack / AllThreads

我发现了这个: http://blogs.msdn.com/b/greggm/archive/2005/08/02/446899.aspx

答案 1 :(得分:3)

后来我用WinDbg找到了答案,

首先在VS调试会话中保存一个minidump,比如myapp.dmp

然后使用以下命令将所有callstack转储到out.txt

cdb -z c:\ myapp.dmp -logo out.txt -lines -c“〜* kb; q”-y c:\ symbols