현재 실행중인 프로세스를 Attach하여 현재 어느 부분을 실행중인지와 각 스레드별 콜스택을 확인하는 방법이다.
무한루프 빠진 경우나 행걸린 경우 등에 유용하다.
Visua Studio로 Attach하는 방법도 있지만... 개발환경이 설치되어 있지 않은 경우가 더 많으니
Process Explorer를 사용하는 방법이 훨 간단.
무한루프 빠진 경우나 행걸린 경우 등에 유용하다.
Visua Studio로 Attach하는 방법도 있지만... 개발환경이 설치되어 있지 않은 경우가 더 많으니
Process Explorer를 사용하는 방법이 훨 간단.
http://byung.egloos.com/4877210
속성을 보면, Threads TAB이 존재하고 CPU를 점유하고 있는 Thread Stack을 확인할 수 있다. 하지만, 그전에 Debugging Tools for Windows 라는 MS에서 제공하는 Tool을 Install 해야만 한다. 그리고, Process Explorer의 main menu의 Options에서 Configure Symbols에 적절한 Symbol을 넣어 주지 않으면, 상위 속성 창에서의 Stack button을 눌렀을 때 적절한 Thread Stack을 확인할 수는 없다. 일반적으로 Microsoft에서 제공하는 Public Symbol path를 입력하고, 그리고 추가로 해당 Process가 사용하는 Exe,DLL에 대한 Symbol 필요하다. 보통은 SRV*c:\symbols*http://msdl.microsoft.com/download/symbols; c:\MySymbols; 이렇게 입력한다. 예상하다시피 c:\MySymbols Folder는 모니터링 Process가 사용하는 EXE, DLLs에 대한 Symbol이 저장된 위치이다. 그와 같은 경우에 아래와 같은 Thread Stack에 대한 정보를 얻을 수 있다.
'C++ > Debug' 카테고리의 다른 글
Leak Debugging(2) - LeakDiag로 메모리 누수 디버깅하기 (Debugging Memory Leak with LeakDiag) (13) | 2009.10.12 |
---|---|
Leak Debugging(1) - CRT 디버그함수를 이용한 메모리 누수(Memory Leak) 탐지하기 (0) | 2009.07.30 |
Debugging Tips (4) - Call Stack 추적하기 (StackWalk) (15) | 2009.03.28 |
Debugging Tips (3) - Just-In-Time Debugger를 이용하는 방법 (3) | 2009.03.02 |
Debugging Tips (2) - Access Violation 핸들링하기 (3) | 2009.02.22 |