delphi 编译器功能很强,但美中不足的是有时程序出错,delphi无法返回源代码的出错语句行号,而只给出出错地址00xxxxxx,让人茫然而无法下手,无法确定到底是源代码中的哪行引起的,本程序只要你输入这个出错地址,就返回出错语句行号,十分方便,本程序在delphi7编译器编译通过,是否支持delphi3,4,5,6,2005以上版本?应该也行!你可以试试看。
使用说明
Delphi 下生成MAP文件的方法(英文版)
project -> options -> Linker -> Map file 选择detailed.
Delphi 下生成MAP文件的方法(中文版)
选项->连接器->映射文件->详细
请确保打开以上选项,在你的工程文件夹内会发现map文件。
请输入delphi报错地址,并且选择对应的map文件,按下开始查询按钮就可以了。
如果报错,则记下map文件出错地址值,手工打开map文件,查找这个值,前面的行号即是出错语句行号,再前面就是出错语句所在单元。
什么是MAP文件
什么是 MAP 文件?简单地讲, MAP
文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。
如果要查找代码行号,需要使用下面的公式做一些十六进制的减法运算:
崩溃行偏移 = 崩溃地址(Crash Address) - 基地址(ImageBase Address) - 0x1000
为什么要这样做呢?我们得到的崩溃地址都是由 偏移地址+
基地址得来的,所以在计算行号的时候要把基地址减去,一般情况下,基地址的值是 0x00400000 。另外,由于一般的 PE
文件的代码段都是从 0x1000 偏移开始的,所以也必须减去 0x1000 。
Delphi 下生成MAP文件的方法
1. project -> options -> Linker -> Map file 选择detailed.