问题现象,如图:报表出现“Invalid pointer operation”错误。这个错误不定时,且需特定的客户才会发生。
开启Project->Options->Compler->Debugging->Use Debug DCUs跟踪,用View->Debug Windows->Call Stack定位,这个错误需要多次测试才能捕捉到。
如图:
仔细看错误图中报表并未显示完,停留在有错误的行,分析该行资料发现有乱码;再结合跟踪图中的代码,发现和数组ReptData.ArrCas有关,这个数组的下标是1,而客户数据中有笔数据的【Cas】字段是“-2”,导致超出数组下标,引起内存泄露。
这种错误比较隐蔽,与我们平时写代码不严谨有关。在此贴出分享,提醒大家不要再犯类似错误,共同进步。 |