Windows程序调试--创建映射文件
来源:互联网 发布:最新网络购物数据分析 编辑:程序博客网 时间:2024/06/10 21:29
做事后调试需要一个对应于程序创建的所有模块的映射文件。
映射文件包含对应模块的最佳装载地址、段表、输出符号地址、静态符号地址以及程序代码地址和源程序行号的映射。
为你的程序创建映射文件,你必须对Visual C++工程中的相应选项作适当的设置。第一步是打开映射文件生成功能、你可以在工程设置对话框里进行设置,在Link标签里的Debug类里打开Generate mapfile选项。由于一些奇怪的原因,Visual c++没有把输出程序的代码地址和源代码行号里的映射作为默认设置。要得到这些信息,还需要在Project Options对话框里键入“/MAPINFO:LINES”。得到引出序号(exorpt ordinal)也许很有用,所以在Project Object对话框末尾里也要键入“/MAPINFO:EXPORTS”。
如果程序在一个非常低的地址上崩溃,或奇怪的地址,显然没有任何合法指令。原因可能为:
l 代码试图用一个非法函数指针调用函数
l 在调用者和实际函数之间存在原型不匹配
l 堆栈已经被破坏了,通常是局部变量的一处导致的函数返回地址被破坏掉了
前两种情况,函数调用已经失败,被调用函数也就没有机会将堆栈基址指针、局部变量以及保存寄存器压入堆栈,意味着函数返回地址刚好就在堆栈顶,很容易退回到源代码。
如果为堆栈破坏,返回地址本身被覆盖的数据修改了,可能会给一些提示,如,如果指针地址看起来像4个ANSI字符(如地址0x73677562,代表ANSI的“bugs”),就可能是被一个局部字符串给覆盖了;
在windows里发生崩溃几乎可以肯定是你代码中的错误导致的,然而,驱动程序中的崩溃极有可能就是驱动程序自身的错误
- Windows程序调试--创建映射文件
- windows调试 -- 创建.dump文件
- Windows程序调试--PE文件
- vs2013创建、安装、调试Windows Service程序
- 创建Log文件调试Symbian程序
- 创建Log文件调试Symbian程序
- 创建内存映射文件
- linux 创建文件映射
- windows 内存映射文件
- windows 内存映射文件
- windows内存映射文件
- windows内存映射文件
- windows 内存映射文件
- Windows文件映射
- (windows)内存映射文件
- windows-内存映射文件
- windows 内存映射文件
- Windows创建网络映射命令
- 哲理故事四则
- sprintf函数详细解释
- 虚拟机VMware里安装VMware Tools没反应
- 图片上传,前置图片预缆
- 关闭默认共享
- Windows程序调试--创建映射文件
- 与Python之父的对话:Python的成功之路
- Leo的怯懦,由3000块钱而起的故事(2)
- 一个合格的equals方法
- 常用JS
- LCDS在线文档
- 表单验证 正则表达式实例 Email验证 电话号码验证 中文汉字验证
- 美科学家成功研制RNA分子生物计算机
- 不知从何下手