VS2003 在push edi 的时候AV

本文记录了一次使用VS2003进行调试时遇到的AV问题及解决过程。通过Windbg发现是由于AcSpecfc.dll中push edi指令导致的访问冲突,并最终确定了解决方案为关闭VS2003的数据执行保护(DEP)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VS2003 在push edi 的时候AV

原贴地址:
http://eparg.spaces.msn.com/Blog/cns!1pnPgEC6RF6WtiSBWIHdc5qQ!379.entry
原贴时间:
2005-11-1
原贴作者:
eparg

个月做一个case的时候,需要激活vs2003的unmanaged debugging. 激活后用f5调试,程序还没有起来,vs2003 IDE就crash了 :(

 
当时比较忙,一直留到今天才来仔细观察这个问题. windbg上去后,看到crash的信息如下:
 
(9ec.dfc): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
好,不就是熟悉的AV么,看看EIP:
 
0:018> u eip
AcSpecfc!NS_NatDbgDM::JumpBuffer:
7150b698 57               push    edi
恩,push居然都会AV,没天理阿。仔细想想,有两种可能:
1) IP地址不可读写
2) ESP不可读写
 
可是:
 
0:018> !address eip
    714d0000 : 7150b000 - 00005000
                    Type     01000000 MEM_IMAGE
                    Protect  00000004 PAGE_READWRITE
                    State    00001000 MEM_COMMIT
                    Usage    RegionUsageImage
                    FullPath C:/WINDOWS/AppPatch/AcSpecfc.dll
0:018> !address esp
    104d0000 : 105cb000 - 00005000
                    Type     00020000 MEM_PRIVATE
                    Protect  00000004 PAGE_READWRITE
                    State    00001000 MEM_COMMIT
                    Usage    RegionUsageStack
                    Pid.Tid  9ec.dfc
傻了吧。有人知道怎么做么?(提示,该问题在打了win2k3 sp1前不会发生)
 
 
 
 
 
==================
解决方法,对vs2003 IDE进程取消"data execution prevention"保护。关于data execution prevention:
 
 
不过vs2003居然触发DEP,可以考虑file一个bug了
 
data execution prevention
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值