From: LRN <lr...@gm...> - 2010-12-22 08:01:06
|
On 22.12.2010 10:47, Tor Lillqvist wrote: >> My question is - why is this thing happening? > As you said yourself, the crash happens at a free() call, which is a > strong hint that the heap has been corrupted at some point earlier. > You need to check your dynamic memory handling even harder. (If > possible, try to run your code under valgrind on Linux.) I often find myself debugging such problems by inserting an extra free() call in various places between malloc() and the free() call that triggers the bug, and then observing its results. If this extra free() call it crashes - re-insert it somewhere closer to malloc(). If it does not - re-insert it somewhere closer to free(). That way i get closer and closer to the code that corrupts the heap. You might also try setting up a watch at the boundaries of the block, although i've never tried that myself. |