Subject: Re: realloc SEGV
To: None <prlw1@cam.ac.uk>
From: None <seebs@plethora.net>
List: current-users
Date: 08/23/1999 11:15:17
In message <E11Iub1-0001HX-00@quartz.newn.cam.ac.uk>, "Patrick Welche" writes:
>Program terminated with signal 11, Segmentation fault.
>(gdb) bt
>#0 0x48393b6c in memcpy ()
>#1 0xa5d1000 in ?? ()
>#2 0x483931db in realloc (ptr=0xb8fd000, size=1843200)
> at /usr/src/lib/libc/stdlib/malloc.c:1135
>#3 0x48118519 in ReallocateMemory (memory=0xb8fd000, size=1843200)
Any time I see a crash inside malloc or realloc, I assume (probably correctly,
IMHO) that someone has previously stomped on pointers.
> r = irealloc(ptr, size);
>irealloc is in malloc.c, so where does
?"irealloc"? It says "realloc" above, what's up?
>Any suggestions on how to proceed?
I generally "solve" this by replacing malloc and realloc with wrapper
functions which log all allocations and frees, then run until the crash,
then run a little perl script on the output to find out what memory was
freed twice, or what memory was freed that was never allocated, etcetera.
-s