delphi,根据access violation的出错信息查找源代码出错位置
2017-08-01 22:32
330 查看
首先,编译的时候,project -> options -> Linker -> Map file 选择detailed.
出错时会弹出access violation错误,里面有个地址,类似:Access violationat address 0044D967 in module....
计算公式:
崩溃行偏移 = 崩溃地址(Crash Address) - 基地址(ImageBase Address) - 0x1000
0044d967 - 00400000 = 0004d967 - 00001000 = 0004c967
记住这个数字:4c967
我们用ultraedit32/editplus之类的工具打开 .map文件,然后找到
Line numbers for Unit1(Unit1.pas) segment .text
这样的文字,里面可能是这样的:
28 0001:0004C944 29 0001:0004C957 30 0001:0004C95F 32 0001:0004C987
34 0001:0004C9BC 34 0001:0004C9C3
第30行编译生成的内存地址是4c95f开始的,出错的代码位于这行区间,也就是30行。
出错时会弹出access violation错误,里面有个地址,类似:Access violationat address 0044D967 in module....
计算公式:
崩溃行偏移 = 崩溃地址(Crash Address) - 基地址(ImageBase Address) - 0x1000
0044d967 - 00400000 = 0004d967 - 00001000 = 0004c967
记住这个数字:4c967
我们用ultraedit32/editplus之类的工具打开 .map文件,然后找到
Line numbers for Unit1(Unit1.pas) segment .text
这样的文字,里面可能是这样的:
28 0001:0004C944 29 0001:0004C957 30 0001:0004C95F 32 0001:0004C987
34 0001:0004C9BC 34 0001:0004C9C3
第30行编译生成的内存地址是4c95f开始的,出错的代码位于这行区间,也就是30行。
相关文章推荐
- storyboard 约束出错导致textfileld位置移动,如何根据以下报错信息排查问题位置
- 根据并发请求id查找相应trace信息
- 根据章节id查找字段信息(Action+Service(Manager) +Dao三层的功能理解)
- 如何通过命令行查找一个IP的地理位置信息
- 根据窗口名称查找关键字弹性域用到的表,列等信息
- gprs 获取基站信息,根据基站信息定位地理位置(基站免费查询接口)
- IOS根据ISBN查找书本信息
- [Python] 根据IP获取位置信息
- yum rpm 查找软件 安装位置 信息
- 线程运行栈StackTrace用法,代码调用树查看,出错代码位置信息提示,代码所在类名包名文件名查看
- java根据ip地址从第三方接口获取详细的地理位置地域信息
- hadoop源代码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置
- 根据GPS获得的经纬度来获取地理位置信息
- Android开发获取联系人信息&根据姓名查找电话%根据电话查找姓名
- 根据MAC地址查找其端口在CISCO交换机中的位置
- delphi 遍历EXCEL文档 ,查找指定区域的位置,并显示其值
- 如何根据异常提示信息找出程序出错代码(VC6)
- IOS8解决获取位置坐标信息出错(Error Domain=kCLErrorDomain Code=0)
- linux驱动调试之段错误分析_根据pc值确定出错的代码位置
- 【ASP.NET 进阶】根据IP地址返回对应位置信息