VC2010的/DYNAMICBASE链接选项问题

近期偶然用Windbg给一个控制台程序的入口函数下断点,地址之际用编译出的Map文件中main函数的地址。结果Windbg报告断点未下成功,经过反复查看,包括在VC环境中调试运行,均发现main函数的地址和Map文件中地址不一样,切带有随机性。

又用VC6.0实验一遍,发现没有任何问题。看来问题是出在编译器上。

最后经过朋友指点,发现竟然是VC2010的链接属性中,/DYNAMICBASE一直开着。所以每次运行入口地址都在随机变化!关闭后,重新编译,main函数入口不再变化了,按照Map文件地址,WinDbg也顺利下断。

/DYNAMICBASE:使用 Windows Vista /Windows 7的地址空间布局随机化 ASLR(Address Space Layout Randomization) 功能,指定是否生成可在加载时随机重新设定基址的可执行文件映像。这个功能VC2010默认开启,从Visual Studio® 2005 SP1 起增加了该设置的支持。据说是为了代码安全!

详见http://technet.microsoft.com/zh-cn/magazine/cc162458.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值