2011-01-27 3 views
9

Visual Studio에서 모든 스레드의 호출 스택을 덤프하거나 검색하는 방법은 무엇입니까? 우리는 디버깅 할 서버 프로세스가 있고 수백 개의 스레드가 실행 중이므로 각 스레드를 수동으로 확인하기가 어려워야합니다.Visual Studio에서 모든 스레드의 호출 스택을 덤프하거나 검색하는 방법

gdb에서 "thread apply"를 알고 있습니다. 이런 종류의 일을 할 수 있습니다. 그래서 Visual Studio의 디버거에서 사용 가능한 비슷한 것이 있는지 궁금합니다.

Visual Studio 2005도 사용 중이므로 VS 2005 (모든 호출 스택 검색은 VS 2010에서 제공됩니다 ...)에 대한 솔루션을 제공하십시오.

답변

2

나중에 나는 myapp.dmp WinDbg는을 사용하여 대답

먼저 VS 디버그 세션, 말의 미니 덤프 저장을 발견

그런

을 out.txt 모든 호출 스택을 덤프하려면 다음 명령을 사용하여

cdb -zc : \ myapp.dmp -logo out.txt -lines -c "~ * kb; q"-yc : \ symbols

14

방금 ​​VS2005에서도 같은 문제가 발생했습니다. 나는 간단한 해결책을 발견 : VS의 명령 창을 열고 디버깅하고, 명령을 사용 동안 : Debug.ListCallStack/AllThreads

을 나는 이걸 발견 : http://blogs.msdn.com/b/greggm/archive/2005/08/02/446899.aspx

+0

좋은,하지만 단지 인쇄 할 것 경고 관리 ID가있는 스레드를 제거하십시오. 순수한 원시 스레드는 포함되지 않습니다. – Weeble

+0

흠. 제 생각에는 제가 틀렸다고 생각 합니다만, 왜 처음에는 모든 스레드를 출력하지 않았는 지 이해할 수 없습니다 ... – Weeble

+1

명령 창이 사라진 경우, 여기에서 찾을 수 있습니다 :'보기 -> 기타 윈도우 -> 명령 창' –

관련 문제