[ProcDump] ProcDump 사용하기

2019. 5. 9. 20:50Computer Tips

https://docs.microsoft.com/en-us/sysinternals/downloads/procdump

 

ProcDump - Windows Sysinternals

This command-line utility is aimed at capturing process dumps of otherwise difficult to isolate and reproduce CPU spikes.

docs.microsoft.com

Dump는 보통 서버를 지속적으로 서비스하는 중에 나오는 예외 상황들을 기록해놓기 위해서 자주 사용하게 되는데 ProcDump는 지정한 프로세스를 모니터링 하면서 해당 프로세스에 대한 덤프를 기록해주는 유틸 프로그램이다.

 

ProcDump 사이트에서 다운로드를 받고 압축을 해제하면 이렇게 3파일이 나온다. 현재 사용하는 운영체제는 64비트이므로 procdump64를 사용해서 프로세스를 모니터링 해보도록 하자.

 

while문을 사용해 무한루프를 돌면서 1이란 입력을 받으면 0 나누기 예외가 발생하도록 코드를 작성했다.

 

모니터링할 프로세스는 procdump_test이다.

procdump.exe를 -t 옵션으로 procdump_test.exe파일을 감시하도록 실행시켰다.

procdump_test에서 1을 입력해서 프로세스를 예외가 일어나도록 만든 후 dump를 확인해보자.

procdump_test.exe_190509_203419라는 파일이 생성되었다.

이 파일을 visual studio에서 열어보도록 하자.

덤프파일을 vs에서 열게 되면 간략하게 예외 정보에 어떤 에러가 있었는지 나올 수 도있다. 하지만 안나오는 경우도 있으므로 네이티브 전용(으)로 디버그를 눌러 어디서 예외가 일어났는지 코드상에서 확인해볼 수 있다.

어디서 에러가 났는지 포인터가 가리키고 잇는것을 확인 할 수 있고, 예외가 있다면 예외창도 띄워준다.

 

배치파일을 만들어 두면 cmd창을 열어서 매번 실행시키 않아도 되니 간편하게 procdump를 사용할 수 있다.