您的位置:首页 > 编程语言 > Delphi

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行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: