0
나는 여전히 this other StackOverflow post에서 언급 한 동일한 스크립트로 작업하고 있습니다.
일반 아이디어 :해당 메모리 주소를 기반으로 CMap (CArray) 개체를 보는 방법
- 이 몇 가지 정보를 얻을 수
- 모든 변수의 메모리 주소를 볼 수있는 스크립트를
- 시도를 사용하여 덤프 파일을 열
dt
기능이 보인다이 시간 CMap 객체에서 실패하는 것 :
dt <application_name>!CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64> m_nCount 000000eab8748430
Ambiguous matches found for <application_name>!CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64> (dumping largest sized):
<application_name>!CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64>::~CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64>
<application_name>!CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64>::CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64> {0x02b bytes}
이 문제를 해결하기 위해 6,
, 나는 비주얼 스튜디오 시계 - 창에서 개체를 열려고했는데, 내가 무엇을하려고이 관계없이, 실패 할 것 같다
(CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64>)0x000000eab8748430 => identifier "CMap..." is undefined
(CMap)0x000000eab8748430 => identifier "CMap" is undefined
(<application_name>!CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64>)0x000000eab8748430 => identifier "<application_name>" is undefined
(mfc110u!CMap<int,int,CUIntArray * __ptr64,CUIntArray * __ptr64>)0x000000eab8748430 => identifier "mfc110u" is undefined
...
그러나 작업의 방법은 작동하는 것 같군 CStringArray
같은 다른 STL 클래스에 대한 :
(CStringArray*)0x000000eab87c6d10 => this is giving good results
사람이 내가 메모리 주소를 기반으로 비주얼 스튜디오의 시계 - 창에서 CMAP (또는 CArray) 개체를 보여줄 수있는 방법을 알고 있나요?
여기에 솔루션을 공유해 주셔서 감사합니다. 좋은 하루 되세요 :) –
아직 알아 내지 못했지만, 디버거에는 특히'__ptr64'에 문제가 있거나 타입 정의에 두 가지'CUIntArray'와'__ptr64'가 포함되어 있다는 사실이 있습니다. 아직 조사가 끝났지 만 지금은 다른 사례가 없습니다. – Dominique