나는 덤프 파일 조사를 위해 인터넷 어딘가에서 찾은 스크립트를 사용하여 windbg
과 작업 중입니다.덤프의 module_name을 검색하는 Windbg 명령이 있습니까?
이 스크립트는 두 가지 명령을 실행합니다. 하나는 모든 기호를 확인하고 덤프에 있습니다 (적어도 생각한 것입니다), 모든 변수의 메모리 주소와 유형을 표시하는 명령입니다.
첫 번째 명령 :
두 번째 명령은 더 복잡하고 있습니다0042da68 <application>!CMap<int,int,CStringArray *,CStringArray *>
...
74c06448 mfc110u!CStringArray
다음과 같은 결과 :
006cabe0 <application>!CMap<int,int,CStringArray *,CStringArray *>
...
006f0280 mfc110u!CStringArray
내가에 관심 x /2 *!*
결과는 같은 항목이 포함 CMap
및 CStringArray
개체의 크기이므로 다음 명령을 실행합니다.
dt <application>!CMap<int,int,CStringArray *,CStringArray *> m_nCount 006cabe0
dt <application>!CStringArray m_nSize 006f0280
괜찮습니다. 필요한 정보를 얻을 수 있습니다.
는 또한이 잘 작동하는 것 같군 :
dt CStringArray m_nSize 006f0280
그러나 이것은 하나의 실패 :
dt CMap<int,int,CStringArray *,CStringArray *> m_nCount 006cabe0
이 내가 덤프의 응용 프로그램의 이름을 얻을 필요가 있음을 의미합니다 (것 같다 일부 서식 지정 중 사라짐).
!analyze -v
명령 (grep
: MODULE_NAME
)을 사용하여 검색 할 수 있지만 응용 프로그램의 이름을 얻는 것만으로도 부담 스럽습니다.
누구든지 windbg
명령을 알고 있는데 조사 중이라는 응용 프로그램을 알기 위해 실행해야합니까?
위대한 답변 일뿐만 아니라 그 답변에 도달하는 방법, 감사합니다! – Dominique
커널 모드 덤프로 확장되지 않을 수 있음을주의하십시오. @ $ exentry는 예외 모듈을 가리 키지 않습니다. kd> dx Debugger.Utility.Control.ExecuteCommand ("! analyze -v"). 여기서 (a => a.Contains ("MODU")) [0x0] : MODULE_NAME : LiveKdD kd> lm 1m a @ $ exentry nt – blabb