【发布时间】:2012-02-14 18:48:06
【问题描述】:
地图文件如下:
0002:000442e4 00000118H .idata$2 DATA
0002:000443fc 00000014H .idata$3 DATA
0002:00044410 00000b7cH .idata$4 DATA
0002:00044f8c 0000512eH .idata$6 DATA
0002:0004a0ba 00000000H .edata DATA
崩溃信息如下所示:
Application Error : The instruction at "0x00458ae1" referenced memory at "0x00000074". The memory could not be "read".
我正在尝试在下一次崩溃时获取堆栈转储,但在我看来,这是我们击败堆栈然后返回的情况,这使我们最终执行数据。
虽然我并不完全确定,因为我读过一些这样的文章:Under the Hood Article 似乎表明这是一个导入方法名称的区域
保留导入库为导入的 API 提供的数据 在名称都以 .idata 开头的几个部分中(例如, .idata$4、.idata$5 和 .idata$6)。 .idata$5 部分包含一个 单个 DWORD,当可执行文件加载时,它包含 导入的函数。 .idata$6 部分(如果存在)包含 导入函数的名称。将可执行文件加载到 内存,Win32 加载程序使用此字符串调用 GetProcAddress 导入函数有效。
没有堆栈回溯,我有点卡住了。我是否以错误的方式看待这次崩溃?
【问题讨论】:
标签: visual-c++ postmortem-debugging