如何根据执行文件出错时的地址信息($0006F590)找到源程序的出错位置??(100分)

  • 主题发起人 主题发起人 gohigh
  • 开始时间 开始时间
G

gohigh

Unregistered / Unconfirmed
GUEST, unregistred user!
; 由于我的程序出错的随机性,所以只能根据现场运行时的出错地址信息
来找源程序的出错位置,我的程序是多线程程序。现在有range check error
错误。
根据所记下的出错地址再到DELPHI环境中的CPU环境中程序的执行代码
地址,好象并不是真正的出错位置。应该是这个位置的附近吧?但还是不能
找到。
哪位朋友知道根据出错地址查找原代码中的位置的原理、条件和需要注
意的地方吗?

谢谢!
 
使用softice软件可以跟踪到虚拟内存
 
多用几个showmessage.就大致可以知道出错地点了.
 
你可以知道出错的位置,不过是在汇编代码的位置,这不需要SOFT ICE,在
DELPHI IDE中就可以完成的。

一般可以用F7/F8调试程序,确定出错的代码,如果是在程序当中出错,也可以
设置断点。

总之,调试很烦的,DELPHI调试功能还算不错的,D5还增强不少,可惜多数我不
用。

题外话:如果用D4,用个Bounds Checker倒满好玩的。
 
多线程程序跟踪比较困难,而且也最容易出错.
看来必须用softice
 
;试试在delphi的ide环境下运行,将调试的异常终端打开,并设置程序只在range
check error异常才中断程序运行,其他异常忽略,这样,程序在及将发生range check error时程序将进入调试状态。也许会成功。Good Luck! {B-)
 
打开Delphi -> View -> Debug Windows -> CPU
天知道是什么意思
 
接受答案了.
 
后退
顶部