티스토리 뷰

반응형

1. 심볼 붙이기

- 참고로 !analyze -v 를 하기 전까지는 lm을 해도 전부 다 붙는지 확인이 잘 되지 않는다.

반드시 심볼과 소스를 다 붙이고 reload 한 후에 !analyze -v를 한 후에 lm을 해서 

제대로 된 버전들이 붙었는지 확인한다. 

 

[운영체제 심볼]

 

1) [인터넷 환경에서 최신 WINDBG 버전은 자동]

!! 최신 버전 windbg는 자동으로 설정이 되어 있다, (최신버전을 쓰자!) 최고!

다만 회사 같은 내부망은 인터넷이 안되서 이게 의미가 없다. 

 

2) [인터넷이 잘 동작하는 환경]

.symfix+ c:\myCache     >>  MS 운영체제 심볼 서버를 캐싱해서 붙여준다.

 

,symfix를 수행하면 다음과 같은 일이 발생한다.

1) srv* 가 세팅되서 자동으로 msdn 심볼 서버가 연결된다.

2) 확장 심볼 서버로 캐시가 세팅된다.

cache*c:\myCache;SRV*https://msdl.microsoft.com/download/symbols

 

3) [수동 방법] : 심볼 서버가 회사 내부에서 따로 캐싱할 경우 

http://msdl.microsoft.com/download/symbols 부분을 바꾸면 된다. 

 

SRV*C:\MyOSSymbols*http://msdl.microsoft.com/download/symbols;

 

[사용자의 심볼 붙이기]

 

추가적으로 사용자의 코드에 대한 심볼을 붙여야 하는데, 위의 os 심볼이 최우선이고, 그 후에는

굳이 위의 symbole search path를 열 필요 없이 

.sympath 로 잘 설정되어있는지 확인하고(OS SYMBOLE)

.sympath+ 경로  >> 이걸로 추가하고 (.sympath+  다  .sympath + 가 아니다. )

.reload

.sympath 로 확인해준다. 

 

2. 소스 붙이기

 

- svn은 자동으로 붙이기 좋은데 git은 자동으로 붙이려면 체크아웃을 때마다 붙여야되서

자동화 스크립트를 쓰는 편이 좋다. 

 

[사용자의 소스 붙이기]

.srcpath + 소스 위치(루트)

 

 

3. 기본 분석하기

 

analyze -v

행 덤프면 

analyze -hang

 

 

4. 의심되는 모듈 정보 보기

 

lmvm 모듈

 

전체 모듈 보기  : lm 

 

5. 여러가지 파편 의심하며 보기 

<최적화 때문에 로컬이나 스택의 변수는 꼭 확인하자>

 

콜스택 보기 : k, kb(의심하면서)

로컬 와치창 열어보기

 

모든 스레드 보기 

 

~*kb

~*kvn

kvL

 

 

특정 스레드 찾아가기

~(n)s

 

소스코드 바로 확인하기

lsa eip

 

 

 

 

 

 

 

 

 

반응형
댓글