Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

WinDbg

帖子发起人: ucan111   发起时间: 2012-09-05 15:58 下午   回复: 4

Print Search
帖子排序:    
   2012-09-05, 15:58 下午
ucan111 离线,最后访问时间: 2012/9/5 7:52:52 ucan111

发帖数前500位
注册: 2012-09-05
发 贴: 3
请教405dfc4c 7c359aed kernel32!RaiseException+0x53是哪里出了问题,谢谢
Reply Quote

FAULTING_IP:
kernel32!RaiseException+53
7d4e237e 5e              pop     esi

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 7d4e237e (kernel32!RaiseException+0x00000053)
   ExceptionCode: e06d7363 (C++ EH exception)
  ExceptionFlags: 00000001
NumberParameters: 3
   Parameter[0]: 19930520
   Parameter[1]: 405dfc9c
   Parameter[2]: 7c1c68e4

DEFAULT_BUCKET_ID:  CORRUPT_MODULELIST

PROCESS_NAME:  FieldServer.exe

OVERLAPPED_MODULE: Address regions for 'FieldServer' and 'Unknown_Module_002e0032' overlap

ERROR_CODE: (NTSTATUS) 0xe06d7363 - <Unable to get error code text>

EXCEPTION_CODE: (NTSTATUS) 0xe06d7363 - <Unable to get error code text>

EXCEPTION_PARAMETER1:  19930520

EXCEPTION_PARAMETER2:  405dfc9c

EXCEPTION_PARAMETER3:  7c1c68e4

FAULTING_THREAD:  00000bc0

PRIMARY_PROBLEM_CLASS:  CORRUPT_MODULELIST

BUGCHECK_STR:  APPLICATION_FAULT_CORRUPT_MODULELIST_OVERLAPPED_MODULE

LAST_CONTROL_TRANSFER:  from 7c359aed to 7d4e237e

STACK_TEXT: 
405dfc4c 7c359aed e06d7363 00000001 00000003 kernel32!RaiseException+0x53
405dfc8c 7c1c68e2 405dfc9c 7c1c68e4 7c21db80 msvcr71!_CxxThrowException+0x34
405dfca0 7c179aff 00000968 029e10d8 5da32270 mfc71!AfxThrowMemoryException+0x19 [f:\vs70builds\3077\vc\mfcatl\ship\atlmfc\src\mfc\except.cpp @ 220]
405dfcb8 00554c84 00000968 3d200000 00000000 mfc71!operator new+0x27 [f:\vs70builds\3077\vc\mfcatl\ship\atlmfc\src\mfc\afxmem.cpp @ 356]
405dfce4 005b7d24 0004e7ff 3ce4c528 638e59e8 FieldServer!GLGaeaServer::SaveCharDB+0xc4 [d:\code\clientlib\g-logic\glgaeaserver.cpp @ 1387]
405dfe64 005c7380 478afa57 3d200000 00000094 FieldServer!GLChar::FrameMove+0x174 [d:\code\clientlib\g-logic\glchar.cpp @ 3497]
405dfeac 0054ef46 478afa57 3d200000 405dff68 FieldServer!GLLandMan::FrameMove+0x1e0 [d:\code\clientlib\g-logic\gllandman.cpp @ 2396]
405dfec8 00556fc1 478afa57 3d200000 00000000 FieldServer!GLGaeaServer::FrameMoveLandMan+0x46 [d:\code\clientlib\g-logic\glgaeaserver.cpp @ 1714]
405dfee0 0056b88b 478afa57 3d200000 0040dff6 FieldServer!GLGaeaServer::FrameMove+0x61 [d:\code\clientlib\g-logic\glgaeaserver.cpp @ 1753]
405dfeec 0040dff6 00000000 08beb058 3fc39f70 FieldServer!DxFieldInstance::FrameMove+0xdb [d:\code\clientlib\dxserverinstance.cpp @ 269]
405dff68 0040e67e 3cfc05a0 08beb058 405dffa8 FieldServer!CFieldServer::Update+0x1e6 [d:\code\netserverlib\s_cfieldserverthread.cpp @ 285]
405dff80 0040e6b9 7c349565 08beb058 00000000 FieldServer!CFieldServer::UpdateProc+0x7e [d:\code\netserverlib\s_cfieldserverthread.cpp @ 356]
405dff84 7c349565 08beb058 00000000 00000000 FieldServer!CServerUpdateProc+0x9 [d:\code\netserverlib\s_cserver.h @ 242]
405dffb8 7d4dfe37 3fc39f70 00000000 00000000 msvcr71!_threadstartex+0x6f [f:\vs70builds\3052\vc\crtbld\crt\src\threadex.c @ 241]
405dffec 00000000 7c3494f6 3fc39f70 00000000 kernel32!BaseThreadStart+0x34


FOLLOWUP_IP:
mfc71!AfxThrowMemoryException+19 [f:\vs70builds\3077\vc\mfcatl\ship\atlmfc\src\mfc\except.cpp @ 220]
7c1c68e2 90              nop

SYMBOL_STACK_INDEX:  2

SYMBOL_NAME:  mfc71!AfxThrowMemoryException+19

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: mfc71

IMAGE_NAME:  mfc71.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  3e77fdfd

STACK_COMMAND:  ~11s; .ecxr ; kb

FAILURE_BUCKET_ID:  CORRUPT_MODULELIST_e06d7363_mfc71.dll!AfxThrowMemoryException

BUCKET_ID:  APPLICATION_FAULT_CORRUPT_MODULELIST_OVERLAPPED_MODULE_mfc71!AfxThrowMemoryException+19

Followup: MachineOwner
---------

0:011> k
c
405dfc4c 7c359aed kernel32!RaiseException+0x53
405dfc8c 7c1c68e2 msvcr71!_CxxThrowException+0x34
405dfca0 7c179aff mfc71!AfxThrowMemoryException+0x19 [f:\vs70builds\3077\vc\mfcatl\ship\atlmfc\src\mfc\except.cpp @ 220]
405dfcb8 00554c84 mfc71!operator new+0x27 [f:\vs70builds\3077\vc\mfcatl\ship\atlmfc\src\mfc\afxmem.cpp @ 356]
405dfce4 005b7d24 FieldServer!GLGaeaServer::SaveCharDB+0xc4 [d:\code\clientlib\g-logic\glgaeaserver.cpp @ 1387]
405dfe64 005c7380 FieldServer!GLChar::FrameMove+0x174 [d:\code\clientlib\g-logic\glchar.cpp @ 3497]
405dfeac 0054ef46 FieldServer!GLLandMan::FrameMove+0x1e0 [d:\code\clientlib\g-logic\gllandman.cpp @ 2396]
405dfec8 00556fc1 FieldServer!GLGaeaServer::FrameMoveLandMan+0x46 [d:\code\clientlib\g-logic\glgaeaserver.cpp @ 1714]
405dfee0 0056b88b FieldServer!GLGaeaServer::FrameMove+0x61 [d:\code\clientlib\g-logic\glgaeaserver.cpp @ 1753]
405dfeec 0040dff6 FieldServer!DxFieldInstance::FrameMove+0xdb [d:\code\clientlib\dxserverinstance.cpp @ 269]
405dff68 0040e67e FieldServer!CFieldServer::Update+0x1e6 [d:\code\netserverlib\s_cfieldserverthread.cpp @ 285]
405dff80 0040e6b9 FieldServer!CFieldServer::UpdateProc+0x7e [d:\code\netserverlib\s_cfieldserverthread.cpp @ 356]
405dff84 7c349565 FieldServer!CServerUpdateProc+0x9 [d:\code\netserverlib\s_cserver.h @ 242]
405dffb8 7d4dfe37 msvcr71!_threadstartex+0x6f [f:\vs70builds\3052\vc\crtbld\crt\src\threadex.c @ 241]
405dffec 00000000 kernel32!BaseThreadStart+0x34


IP 地址: 已记录   报告
   2012-09-05, 21:26 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教405dfc4c 7c359aed kernel32!RaiseException+0x53是哪里出了问题,谢谢
Reply Quote
FieldServer!GLGaeaServer::SaveCharDB函数里调用new分内存触发异常了... 如果有源文件(d:\code\clientlib\g-logic\glgaeaserver.cpp )先看下...
IP 地址: 已记录   报告
   2012-09-06, 11:32 上午
ucan111 离线,最后访问时间: 2012/9/5 7:52:52 ucan111

发帖数前500位
注册: 2012-09-05
发 贴: 3
Re: 请教405dfc4c 7c359aed kernel32!RaiseException+0x53是哪里出了问题,谢谢
Reply Quote

感谢 Raymond 的回应,我将出错时的代码以及我修改后的代码都发送到您的邮箱里了,麻烦您抽空帮忙看一下我修改的地方是否正确,谢谢


IP 地址: 已记录   报告
   2012-09-06, 22:39 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教405dfc4c 7c359aed kernel32!RaiseException+0x53是哪里出了问题,谢谢
Reply Quote

在应用程序中分配内存(new)失败可能有多种原因,常见的有以下两种:

1)要分配的内存块较大,内存管理器确实无法满足这样的分配要求,比如进程的地址空间“用完”

2)堆损坏(heap corruption),堆管理器在分配内存(寻找空闲块)的过程中遇到错误,直接导致崩溃或者返回错误

根据贴出的信息来看,第二种原因的可能性比较高。导致堆损坏的原因很多,重复释放,使用释放了块,溢出等。建议尝试以下方法:

1)启用页堆,寻找溢出

2)检查源代码,找可能的内存指针误用

3)在调试器中分析堆,寻找线索


IP 地址: 已记录   报告
   2012-09-06, 22:59 下午
ucan111 离线,最后访问时间: 2012/9/5 7:52:52 ucan111

发帖数前500位
注册: 2012-09-05
发 贴: 3
Re: 请教405dfc4c 7c359aed kernel32!RaiseException+0x53是哪里出了问题,谢谢
Reply Quote
多谢回应^^我会继续努力
IP 地址: 已记录   报告
高端调试 » 软件调试 » WinDbg » Re: 请教405dfc4c 7c359aed kernel32!RaiseException+0x53是哪里出了问题,谢谢

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.