아래 로그 파일을 보면...
"401867 이라는 주소에 오류->" 라고 표시한곳을 볼수 있다. 이곳이 에러(예외)가 발생한곳인데..
이 주소를 가지고 우리는 우선 2가지를 짐작할수 있다.
두번째는 에러가 발생한 지점이 1867 이라는 곳이다.
로그 닫기.. " more="
로그 보기 펼치기.. ">
Microsoft (R) DrWtsn32
Copyright (C) 1985-2001 Microsoft Corp. All rights reserved.
응용 프로그램 예외 발생:
응용 프로그램: D:\project\dumptest\Debug\dumptest.exe (pid=3620)
날짜: 2006-08-22 @ 07:39:35.843
예외 번호: c0000005 (액세스 위반)
*----> 시스템 정보 <----*
컴퓨터 이름: HONGYVER
사용자 이름: Administrator
터미널 서비스 세션 Id: 0
프로세서 수: 2
프로세서 유형: x86 Family 15 Model 6 Stepping 2
Windows 버전: 5.1
현재 빌드: 2600
Service Pack: 2
현재 유형: Multiprocessor Free
등록된 조직: safa
등록된 소유자: hong
*----> 작업 목록 <----*
0 System Process
4 System
1428 smss.exe
1484 csrss.exe
1508 winlogon.exe
1544 services.exe
1564 lsass.exe
1764 svchost.exe
1812 svchost.exe
중간생략
3704 dumptest.exe
3964 msmsgs.exe
3620 dumptest.exe
900 svchost.exe
3844 drwtsn32.exe
*----> 모듈 목록 <----*
(0000000000400000 - 0000000000405000: D:\project\dumptest\Debug\dumptest.exe
(0000000010000000 - 0000000010006000: C:\Program Files\NATEON\BIN\NateOnHook36u.dll
(0000000010200000 - 000000001026c000: C:\WINDOWS\system32\MSVCRTD.dll
(000000003af30000 - 000000003af4b000: C:\WINDOWS\system32\IMEKR70.IME
(000000005a480000 - 000000005a4b8000: C:\WINDOWS\system32\uxtheme.dll
중간생략
(0000000077f50000 - 0000000077ff8000: C:\WINDOWS\system32\ADVAPI32.dll
(000000007c340000 - 000000007c396000: C:\WINDOWS\system32\MSVCR71.dll
(000000007c800000 - 000000007c92e000: C:\WINDOWS\system32\kernel32.dll
(000000007c930000 - 000000007c9cc000: C:\WINDOWS\system32\ntdll.dll
(000000007d5a0000 - 000000007dd9b000: C:\WINDOWS\system32\SHELL32.dll
*----> 스레드 Id 0x21c의 상태 덤프 <----*
eax=00000000 ebx=00000000 ecx=0012fe74 edx=00000000 esi=00145118 edi=0012f6a0
eip=00401867 esp=0012f648 ebp=0012f6a0 iopl=0 nv up ei pl nz ac pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000212
*** WARNING: Unable to verify checksum for D:\project\dumptest\Debug\dumptest.exe
함수: dumptest!CDumptestDlg__OnDump
00401848 57 push edi
00401849 51 push ecx
0040184a 8d7db4 lea edi,[ebp-0x4c]
0040184d b913000000 mov ecx,0x13
00401852 b8cccccccc mov eax,0xcccccccc
00401857 f3ab rep stosd
00401859 59 pop ecx
0040185a 894dfc mov [ebp-0x4],ecx
0040185d c745f800000000 mov dword ptr [ebp-0x8],0x0
00401864 8b45f8 mov eax,[ebp-0x8]
오류 -> 00401867 c60000 mov byte ptr [eax],0x0 ds:0023:00000000=??
0040186a 8b4df8 mov ecx,[ebp-0x8]
0040186d 894df4 mov [ebp-0xc],ecx
00401870 8b55f4 mov edx,[ebp-0xc]
00401873 52 push edx
00401874 e885020000 call dumptest!operator delete (00401afe)
00401879 83c404 add esp,0x4
0040187c 5f pop edi
0040187d 5e pop esi
0040187e 5b pop ebx
0040187f 83c44c add esp,0x4c
*----> 스택 역 추적 <----*
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\USER32.dll -
WARNING: Stack unwind information not available. Following frames may be wrong.
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\kernel32.dll -
ChildEBP RetAddr Args to Child
0012f6a0 5f4398cc 0012f940 00145118 00000000 dumptest!CDumptestDlg__OnDump+0x27
0012f6d8 5f439ffb 0012fe74 000003e8 00000000 MFC42D!_AfxDispatchCmdMsg+0xa2
0012f730 5f435c1b 000003e8 00000000 00000000 MFC42D!CCmdTarget__OnCmdMsg+0x274
중간생략
0012ffc0 7c816d4f 00330032 00390038 7ffdf000 dumptest!WinMainCRTStartup+0x1b3
0012fff0 00000000 00401b70 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49
*----> 로 스택 덤프 <----*
000000000012f648 40 f9 12 00 18 51 14 00 - 00 00 00 00 cc cc cc cc @....Q..........
000000000012f658 cc cc cc cc cc cc cc cc - cc cc cc cc cc cc cc cc ................
000000000012f668 cc cc cc cc cc cc cc cc - cc cc cc cc cc cc cc cc ................
중간생략
000000000012f758 00 00 00 00 b4 f8 12 00 - c0 f7 12 00 33 1f 43 5f ............3.C_
000000000012f768 e8 03 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
000000000012f778 40 f9 12 00 18 51 14 00 - 00 00 00 00 74 fe 12 00 @....Q......t...
*----> 심볼 테이블 <----*
D:\project\dumptest\Debug\dumptest.exe
00403168 dumptest!_afxInitAppState = 0x1 ''
00403160 dumptest!_commode = 0
00403164 dumptest!_fmode = 0
중간생략
004020c8 dumptest!_imp_?OnInitDialog
00402108 dumptest!_imp_?EndModalLoop
00402198 dumptest!_imp_?SendMessageA
00402164 dumptest!_imp_?AppendMenuA
0040196c dumptest!CObject__Serialize
빌드시 아래의 그림처럼 MAP 파일을 생성하자.
Project Options에 /mapinfo:lines 도 추가해준다.
그러면 우리는 아래와 같은 MAP 파일을 얻을수 있다.
이런 툴도 종류가 많구나~
2005도 지원한데요???
근데 vs2005 좀 불안하죠?
아니...
MFC 나 Win32는 아주 깔끔하게 바꿔주는데...
다른 프로젝트는...안되는거 같어...ㅜㅜ