Sep 30, 2009

malloc fail

昨天生出了個BUG,主要的問題是ACCESS VIOLATION,現在還寫得出這種蠢程式真是讓我哭笑不得啊。

MARK說XP對記憶體的保護比較不嚴格,所以就算動到了不該動的位置也不見得會立刻出事。我碰到的情況是MALLOC忽然就失敗了,而整個程式吃掉的記憶體才13MB左右,因此斷定不是LOOP+LEAK,但是由於只是配置失敗,所以程式跑起來好像沒事一樣,只不過東西出不來而已。於是我開了些除錯用的例外,果然程式在出錯的地方丟出意外,仔細檢查後才發現是BUFFER SIZE算錯。

結論:MALLOC會失敗是因為動到HEAP記錄的地方(HEAP CORRUPTION)。

No comments: