有关一种烦人的BUG, 如何调试?(50分)

  • 主题发起人 主题发起人 坏蛋是我
  • 开始时间 开始时间

坏蛋是我

Unregistered / Unconfirmed
GUEST, unregistred user!
这几天做数据格式,老是碰到诸如:
Access violation at address 00401F0B in module 'XXX.exe'. Write of address 3FBE672C
的错误!

简直把我烦死了!我也知道不好调试,所以来大富翁请教请教!对这种BUG如何调试?

比如我有个函数UnitePrpDataAryByMin(GpdmStr: string), 每当参数GpdmStr=009704时
就会在这函数里面的一句
SetLength(TmpDataAry, Counts);出错!
但是此前该函数已被循环调用了几百次了都没问题!

顺便问一下如何清除SetLength()分配的空间?我是用SetLength(var, 0);对不对?

谢谢谢谢!

 
对!!!!!!!
可能是动态数组的下标超界或是负的。
 
谢谢!但是我对动态数组的访问绝对没有越界的,否则的话早就异常了
(这个函数是被循环调用的)!
 
009704是什么呀!
SetLength(var, 0);没错;
 
就是参数的值!
GpdmStr='009704';
 
谢谢楼上各位,估计是我的指针数组出了问题,给个教训:编译时一定要把Hint及
Warning清扫干净!
 
多人接受答案了。
 
后退
顶部