delphi 編譯器功能很強,但美中不足的是有時程序出錯,delphi無法返回源代碼的出錯語句行號,而只給出出錯地址00xxxxxx,讓人茫然而無法下手,無法確定到底是源代碼中的哪行引起的,本程序只要你輸入這個出錯地址,就返回出錯語句行號,十分方便,本程序在delphi7編譯器編譯通過,是否支持delphi3,4,5,6,2005以上版本?應(yīng)該也行!你可以試試看。
使用說明
Delphi 下生成MAP文件的方法(英文版)
project -> options -> Linker -> Map file 選擇detailed.
Delphi 下生成MAP文件的方法(中文版)
選項->連接器->映射文件->詳細
請確保打開以上選項,在你的工程文件夾內(nèi)會發(fā)現(xiàn)map文件。
請輸入delphi報錯地址,并且選擇對應(yīng)的map文件,按下開始查詢按鈕就可以了。
如果報錯,則記下map文件出錯地址值,手工打開map文件,查找這個值,前面的行號即是出錯語句行號,再前面就是出錯語句所在單元。
什么是MAP文件
什么是 MAP 文件?簡單地講, MAP
文件是程序的全局符號、源文件和代碼行號信息的唯一的文本表示方法,它可以在任何地方、任何時候使用,不需要有額外的程序進行支持。而且,這是唯一能找出程序崩潰的地方的救星。
如果要查找代碼行號,需要使用下面的公式做一些十六進制的減法運算:
崩潰行偏移 = 崩潰地址(Crash Address) - 基地址(ImageBase Address) - 0x1000
為什么要這樣做呢?我們得到的崩潰地址都是由 偏移地址+
基地址得來的,所以在計算行號的時候要把基地址減去,一般情況下,基地址的值是 0x00400000 。另外,由于一般的 PE
文件的代碼段都是從 0x1000 偏移開始的,所以也必須減去 0x1000 。
Delphi 下生成MAP文件的方法
1. project -> options -> Linker -> Map file 選擇detailed.