如何在Visual Studio中转储或搜索所有线程的调用堆栈?我们有一个服务器进程要调试,它有数百个线程在运行,所以应该很难手动检查每个线程。
我知道gdb中的“线程应用”可以做这种事情。所以我想知道visual studio的调试器中是否有类似的东西。
我也在使用visual studio 2005,所以请为VS 2005提供解决方案(在VS 2010中提供所有调用堆栈的搜索......)。
答案 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