최신목록

2017년 10월 12일 목요일

[windows]메모리 릭 분석방법(umdh 이용)

crash 나거나 cpu 올라가는것들은 다 windbg로 분석이 가능한데..
메모리는 당췌 해결이 안된다..메모리가 팍팍 오르면 찾기가 쉬운데 ㅎ 슬슬...오르는건지 안오르는건지..몇일 지나면 좀 올라있고 음...메모리풀을 많이 사용해서.. 이게 메모리릭인지 먼지 .... 이럴때 umdh 엄청난 놈이다 ~ Debugging Tools for Windows 안에 포함되어있다.

사용법은 아래와 같다.
1. 유저모드 스택 추적을 설정한다. 이건 gflags라는 툴로(Debugging Tools for Windows에 포함되있음)

2. umdh를 이용해서 메모리 증가 전 메모리를 캡쳐한다.

** umdh 가 callstack을 보여주기 때문에 심볼이 필요하다. 심볼을 준비하고 심볼패스를 설정해준다. 그렇치 않으면 아래와같은 warning이 뜬다. 자세한 콜스택정보가 필요치 않으면 그대로 다음으로 진행해도 된다.

> Set _NT_SYMBOL_PATH=c:\sym;C:\Windows\symbols

3. umdh를 이용해서 메모리 증가 후 메모리를 캡쳐한다.

4. umdh를 이용해서 두 메모리의 차이를 분석한다.


6. 비교분석한 결과 파일(notepadcompare.log)를 열어보면 메모리 allocation 된 곳의 콜스택정보가 나와있다. 물론 이걸로 메모리릭을 바로 알수는 없지만 언제캡쳐하든 계속 증가하면서 남아있는 메모리 블럭이 있다면~ 



댓글 없음:

댓글 쓰기