|
|
|
|
|
|
|
C/C++本地代码调试
帖子发起人: Abstr 发起时间: 2015-03-05 17:18 下午 回复: 5
|
帖子排序:
|
|
|
|
2015-03-05, 17:55 下午
|
Bombs
注册: 2014-01-16
发 贴: 15
|
|
|
use windbg to debug ur debugger.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2015-03-09, 15:37 下午
|
Abstr
注册: 2014-11-05
发 贴: 22
|
|
|
多谢张老师,确实是要使用到调试器相关知识处理问题。 上面说的问题,我已经有点眉目了。
简单的说下问题: 我在DllMain位置下断, 1、第一次接收到调试事件后返回DBG_NOT_HANDLED 2、异常返回程序执行SEH的处理代码 3、第二次接收到调试事件恢复断点
问题就出在第2和第3步之间,我用windbg反汇编了DllMain代码,发现__DllMainCRTStartup调用DllMain之前使用了__try包裹这段代码,之所以我在DllMain设置的断点和其他位置的断点表现的差异,应该出在SEH处理代码这里,有可能__DllMainCRTStartup捕获了这个异常,没作处理然后又抛了另外一个异常出来。这就导致我没受到DllMain断点第二次命中事件之前,就收到了另外一个异常,最后导致堆破坏错误。
请张老师看下,我说的是否有问题。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » C/C++本地代码调试 » Re: 调试dll程序总是收到访问违规异常
|
|
|
|
|
|