内存出错问题(200分)

K

Kaven

Unregistered / Unconfirmed
GUEST, unregistred user!
公司里的程序写好了,但老是出内存错误,现在让我调试,我真是感觉这东西可怕,这么长
的代码,根本不可能一句一句去看,用memproof也看不出什么东西,可能我还用不来?我该
怎么办?大家给点意见吧。
 
不会吧,没人回答
 
我也想知道怎么办???
 
看getmem(x,255)的地方是不是已经freemem(x)了
所以可以用查找,也许是有死循环,那就得看作循环的地方了,
这就是模块的问题
 
简单啊,看那里错查哪里啊,
 
你说得这么笼统,要我们怎么说?你可以先估计一下可能是哪里的问题,然后集中查那部分,
读写内存的代码应该比较容易找出来吧。
 
它的内存出错是什么意思??给了什么提示吗??
 
看看有沒有申請加載內存的語句在使用后,有沒有及時釋放掉。
 
问题太多了,真的是感觉无从下手,我只是想让大家给我点如何处理这种问题的流程,
而费具体的方法。
 
看那里蹦叉呀,那个模块蹦叉,就到那里去。
如果程序比较大,不可能是仅仅在一个pas里面,首先找到出错的pas(也许能找到)
然后慢慢跟踪了。
如果出错的地方固定,能重现,那么就应该很容易解决,如果是随机蹦叉,那就麻烦了。
 
问题是原理编写的时候都是分开的,好像都没什么问题,或者是荫藏了问题,而总的合并
以后,几个模块直接可能是有冲突,到处报错。可怕。
 
偶用Delphi新建了一个程序,除了一个空窗体,什么都没有。
用MemProof一检查,竟然也发现了好几个错误,大多数是Getmem,VirtualAlloc这些。
郁闷啊。。。
 
把原码贴出来
 
[red]昏倒[/red]
 
很多错误有偶然性,第一次不一定出现,2、3次以后,就可能出错,而且都是内存出错。
 
看看你的程序中是否用到动态数组之类,在动态数组中若没处理好,在各模块中进行参数
传递后就会不定时、不定点地出现内存错误。
 
getmem ---> free
 
数组越界!
 
用numega的boundchecher试试.很好用.
 
完了,我们里面动态数组好多啊~~~
 
顶部