때때로 모든 시스템에서 내 코드가 충돌합니다. 꽤 자주 내 사용자는 Windows 충돌 대화 상자의 스크린 샷을 보냅니다. 예를 들어, 나는 최근에 수신이 :Windows 크래시 대화 상자의 16 진수 의미
Unhandled win32 exception @ 0x3a009598 in launcher2g.exe: 0xC00000005: Access violation writing location 0x00000000.
그것은 나에게 분명 (때문에가 0xc0000005 코드뿐만 아니라 기입 오류 메시지) 내 launcher2g.exe 과정에서 어딘가에 널 포인터를 다음과 같은거야. 명확하지 않은 점은 '0x3a009598'숫자의 중요성입니다. 문제를 유발 한 어셈블러 명령어가 저장된 프로세스의 주소 공간에 코드 오프셋이 있습니까?
launcher2g.exe 모듈이 프로세스에로드 된 위치가 0x3a000000이라는 가정하에 Visual Studio 디버거를 사용하여 어셈블러 코드를 0x3a009598에서 확인했지만 불행히도 'int 3'명령이 많이있었습니다 (이것은 디버그 빌드이므로 많은 int 3 패딩이 있습니다.)
나는이 @ 0x12345678 숫자를 최대한 활용하는 방법을 항상 궁금해했다. 여기 누군가가 더 많은 설명을 들려 주거나 더 자세한 설명을 나눌 수 있다면 좋을 것이다.
UPDATE : Finding crash information using the MAP file : 사람이 미래에이 문제를 발견 경우, 여기에 내가 위에 인용 된 것과 같은 오류 메시지를 이해하는 방법에 대해 설명합니다 내가 찾은 매우 흥미로운 읽기입니다.
예, 해당 주소에 DLL이 있으며 어떤 경우인지 알 수 있습니다. 내 응용 프로그램과 연결되는 DLL을 개발했습니다.) Vista의 크래시 덤프에 대한 한 가지 의견 : 어떻게 든 사용할 수있게해야합니까? 몇 가지 충돌이 발생했지만 % TEMP %에서 mdmp 파일을 볼 수 없습니다. .map 파일에 대한 포인터를 보내 주셔서 감사합니다. –
I * think * 사용자가 Windows 오류보고로 오류 보고서를 보내도록 선택한 경우에만 mdmp 파일이 나타날 수 있습니다. 분명히 적절한 인증서가있는 응용 프로그램 파일에 디지털 서명을하면 실제로 "MS에이 오류보고 및 수정 사항보기"대화 상자를 통해 제출하는 Microsoft의 크래시 덤프를 얻을 수있는 몇 가지 방법이 있습니다 보여줍니다. 이 옵션이 얼마나 쉽고 비용 효율적인지 조언 할 수는 없습니다. –