windows 程序异常崩溃等错误定位
2016-07-07 16:25
357 查看
MAP/映射文件
1. MAP 映射文件的作用:MAP文件可以查找崩溃或者程序异常地址,然后就可以精确地定位到源代码中出错的代码行。
2.VS中生成MAP文件的方法,项目属性中选择生成映射文件,如下图
编译完,会在生成目录生成对应的xxxxx.map文件
3.
1. 程序调试阶段或者发布后(发布程序时需要一起打包生成的对应MAP文件,因为修改代码再次编译后对应的MAP文件是不一样的),当程序崩溃或者出现异常时,在windows的程序日志界面会有相应的错误日志,如下图
上图中可以看出DBSIPTask.dll运行时出现异常(0xC0000005,一般是内存异常,指针越界等),可以看到错误偏移量:0x00055974,这个地址就可以在相应的MAP文件中定位到函数地址
4. 偏移量在MAP中定位,如下图
0x10000000是DBSIPTask的起始地址,加上偏移量0x00055974=0x10055974,如下图
异常地址在函数eXosip_redirect_invite 的地址0x100558f0-0x10055980之间,所以出现异常错误的函数是eXosip_redirect_invite,在根据与函数起始地址之间的差值,可大约定位函数内部代码行。
1. MAP 映射文件的作用:MAP文件可以查找崩溃或者程序异常地址,然后就可以精确地定位到源代码中出错的代码行。
2.VS中生成MAP文件的方法,项目属性中选择生成映射文件,如下图
编译完,会在生成目录生成对应的xxxxx.map文件
3.
1. 程序调试阶段或者发布后(发布程序时需要一起打包生成的对应MAP文件,因为修改代码再次编译后对应的MAP文件是不一样的),当程序崩溃或者出现异常时,在windows的程序日志界面会有相应的错误日志,如下图
上图中可以看出DBSIPTask.dll运行时出现异常(0xC0000005,一般是内存异常,指针越界等),可以看到错误偏移量:0x00055974,这个地址就可以在相应的MAP文件中定位到函数地址
4. 偏移量在MAP中定位,如下图
0x10000000是DBSIPTask的起始地址,加上偏移量0x00055974=0x10055974,如下图
异常地址在函数eXosip_redirect_invite 的地址0x100558f0-0x10055980之间,所以出现异常错误的函数是eXosip_redirect_invite,在根据与函数起始地址之间的差值,可大约定位函数内部代码行。
相关文章推荐
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- windows用windeployqt发布qt quick application程序
- 利用开源软件打造自己的全功能远程工具
- Windows 8虚拟机不能全屏的解决方法
- 虚拟化基础架构Windows 2008篇之1-虚拟化基础服务概述
- 虚拟化基础架构Windows 2008篇之5-安装Windows部署服务
- 虚拟化基础架构Windows 2008篇之7-添加其他操作系统的安装镜像
- 虚拟化基础架构Windows 2008篇之9-配置Windows部署服务
- 虚拟化基础架构Windows 2008篇之12-WSUS工作站端配置
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得