반응형
원문 : http://stackoverflow.com/questions/9065975/what-does-windbgs-primary-problem-class-stackimmune-mean
!analyze 의 원리를 잠깐 설명하면,
!analyze 는 access violation (또는 SEH exception, C++ exception, integer overflow, division by zero 등등)의 원인을 찾기 위해서 예외를 던진 쓰레드의 콜스택 위에 무엇이 있는지 확인한다. 그러나, 모든 스택 프레임이 의미있는 것은 아니다.
예를 들어, C++ 예외일 경우 가장 위에 있는 kernel32!RaiseException 과 your_module!__exception_handler3 가 스택 가장 위에 있겠지만, 이런 프레임은 문제의 직접적인 원인일 가능성이 낮기 때문에 스킵되어야 한다. !analyze 는 더 흥미로운 스택프레임까지 가기 위해서 많은 프레임을 스킵해야 한다. 이 스택 오버플로우 질문의 예에서는 문제가 되는 코드까지 약 40 프레임을 넘어간다.
STACKIMMUNE 은 콜스택의 모든 프레임이 스킵되었다는 것을 나타낸다. 이것은 스택이 손상되었거나, 심볼이 잘못되었을 때 나타날 수 있다. 심볼이 잘못된 것이라면 !reload /i 를 사용하여 미스매치 에러를 무시해야 할 것이다.
728x90
'툴-팁' 카테고리의 다른 글
ID2D1Factory 인터페이스 (0) | 2014.05.14 |
---|---|
WinDbg|전체 프로세스 메모리에서 특정 패턴 스캔하기 (0) | 2014.04.16 |
[번역] First Chance Exception 은 무엇일까? (0) | 2013.07.03 |
[번역] UAC가 설정되어 있을 때, 프로세스를 관리자 권한으로 실행시키는 방법 (1) | 2013.05.10 |
리소스 모니터 메모리 탭 탐구 (1) | 2012.04.26 |