社区
汇编语言
帖子详情
关于MAP文件的小问题
幽幽浮浮
2012-10-11 06:36:36
同样的控制台HelloWorld程序,VC++6.0和VC++2010编译出来的MAP文件中,main函数的入口地址,用Windbg中下断点,VC++6.0的可以成功,VC++2010的地址总不成功。这是为什么呢?
VC++2010的编译器在链接时篡改了入口地址吗?有什么说法没?
...全文
274
7
打赏
收藏
关于MAP文件的小问题
同样的控制台HelloWorld程序,VC++6.0和VC++2010编译出来的MAP文件中,main函数的入口地址,用Windbg中下断点,VC++6.0的可以成功,VC++2010的地址总不成功。这是为什么呢? VC++2010的编译器在链接时篡改了入口地址吗?有什么说法没?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
幽幽浮浮
2012-10-15
打赏
举报
回复
经过确认,的确是/DynamicBase链接属性导致。改为NO,编译后的入口地址即可正常下断了。
Areslee
2012-10-13
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
是设置断点失败还是程序装载之后已经走过那个地址了?
---是设置端点失败。
因为我在vs环境中,调试执行,看到main函数的入口地址和MAP文件的地址就不同,每次都会变化。似乎随机映射的。
而调试执行看到的这个地址,在winDbg中下,就可以成功中断在main。
[/Quote]
这个你要看看你是不是在连接选项里设置了允许重定位
大熊猫侯佩
2012-10-13
打赏
举报
回复
编译器改main地址是有可能的,你断不到,看main地址是否变了
幽幽浮浮
2012-10-13
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
是设置断点失败还是程序装载之后已经走过那个地址了?
[/Quote]---是设置端点失败。
因为我在vs环境中,调试执行,看到main函数的入口地址和MAP文件的地址就不同,每次都会变化。似乎随机映射的。
而调试执行看到的这个地址,在winDbg中下,就可以成功中断在main。
Areslee
2012-10-12
打赏
举报
回复
是设置断点失败还是程序装载之后已经走过那个地址了?
幽幽浮浮
2012-10-12
打赏
举报
回复
vc2010编译的map文件部分内容:
Address Publics by Value Rva+Base Lib:Object
0000:00000000 ___safe_se_handler_table 00000000 <absolute>
0000:00000000 ___safe_se_handler_count 00000000 <absolute>
0000:00000000 ___ImageBase 00400000 <linker-defined>
0001:00000000 __enc$textbss$begin 00401000 <linker-defined>
0001:00010000 __enc$textbss$end 00411000 <linker-defined>
0002:000003b0 _main
004113b0
f VC_ConsoleDemo.obj
0002:0000040e _printf 0041140e f MSVCRTD:MSVCR100D.dll
0002:00000420 __RTC_CheckEsp 00411420 f MSVCRTD:_stack_.obj
0002:00000450 @_RTC_CheckStackVars@8 00411450 f MSVCRTD:_stack_.obj
0002:000004d0 @_RTC_AllocaHelper@12 004114d0 f MSVCRTD:_stack_.obj
0002:00000510 @_RTC_CheckStackVars2@12 00411510 f MSVCRTD:_stack_.obj
VC6.0编译的map文件部分内容:
Address Publics by Value Rva+Base Lib:Object
0001:00000010 _main
00401010
f DebugDemo.obj
0001:00000040 _printf 00401040 f LIBCD:printf.obj
0001:000000c0 __chkesp 004010c0 f LIBCD:chkesp.obj
0001:00000100 _mainCRTStartup 00401100 f LIBCD:crt0.obj
红色的就是bp不成功的地址,但蓝色的却可以。
Areslee
2012-10-11
打赏
举报
回复
会不会是manifest文件的问题?
政府科技管理者在推动区域产业数字化转型过程中,如何利用科创数智大脑进行精准政策匹配?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
使用java
文件
分卷压缩
Java环境配置实战指南
易语言源码拦截外部程序消息
易语言源码拦截外部程序消息
智能体测开Day33的内置项目
python然知项目
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章