Как сделать дамп или поиск в стеках вызовов ВСЕХ потоков в Visual Studio - PullRequest
10 голосов
/ 27 января 2011

Как сделать дамп или поиск в стеках вызовов ВСЕХ потоков в Visual Studio?У нас есть серверный процесс для отладки, и на нем запущены сотни потоков, поэтому трудно вручную проверять каждый поток.

Я знаю, что "применение потоков" в gdb может делать подобные вещи.Поэтому мне было интересно, есть ли что-нибудь подобное в отладчике Visual Studio.

Также я использовал Visual Studio 2005, поэтому, пожалуйста, дайте решение для VS 2005 (поиск по всему стеку вызовов предоставляется в VS 2010 ...).

Ответы [ 2 ]

15 голосов
/ 17 мая 2011

У меня просто была такая же проблема, тоже в VS2005.Я нашел более простое решение: во время отладки откройте командное окно VS и используйте команду: Debug.ListCallStack / AllThreads

Я нашел это на: http://blogs.msdn.com/b/greggm/archive/2005/08/02/446899.aspx

4 голосов
/ 30 января 2011

Позже я нашел ответ с помощью WinDbg,

Сначала сохраните мини-дамп в сеансе отладки VS, скажем, myapp.dmp

Затем, используя следующую команду, выгрузить все вызовы в out.txt

cdb -z c: \ myapp.dmp -logo out.txt -lines -c "~ * kb; q" -y c: \ символы

...