delphi MAP FILE

什么是   MAP   文件?简单地讲,   MAP   文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。  
   
  DELPHI下生成MAP文件的方法:偶只知道下面两种,如果谁知道其他的方法   敬请告知   多谢  
  生成详细的MAP信息的方法  
  1.   project   ->   options   ->   Linker   ->   Map   file   选择detailed.  
  2.   D:/Fred/Code/DELPHI/MyPas/ErrLineByAddr2>dcc32   -GD   project1.dpr

 

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      I,   J:   Integer;  
      p:   PChar;  
  begin  
      I   :=   10;  
      J   :=   0;     
      p   :=   nil;  
      p^   :=   'A';     //   38  
  end;  
   
  end.  
  //   想必大家看到了   会有返回0地址错误....我们这里就是要让它崩溃,让我让你崩溃   ^_^  
  然后执行   点击   然后出错   我的机器上   崩溃地址为0044d946    
   
  如果要查找代码行号,需要使用下面的公式做一些十六进制的减法运算:  
  崩溃行偏移   =   崩溃地址(Crash   Address)   -   基地址(ImageBase   Address)   -   0x1000    
  减去后得到   0004c946   然后查找   0004c946    
  0044d946   -   00400000   =   0004d946   -   00001000   =   0004c946   <=   后面列出的    
  0004C946   就是它了   我们用ultraedit32之类的工具打开   .map文件   搜索   0004C94,找到了,然后就找  
  <=   0004c946的那个地址   然后看到了  
  Line   numbers   for   Unit1(Unit1.pas)   segment   .text  
   
          37   0001:0004C944         38   0001:0004C946         39   0001:0004C949         41   0001:0004C97C  
          41   0001:0004C983  
   
  o   yeah..<星际里面注射兴奋剂的声音   ^_^>..   38   0001:0004C946         就是它了。。。unit1.pas的第38行!!去代码里看一下   果然就是38行   ^_^.....  

好像大的工程文件,查找不是方便!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值