On Sat, 20 Sep 2008 00:31:41 -0700 (PDT), Unga <[EMAIL PROTECTED]> wrote:
> --- On Sat, 9/20/08, Giorgos Keramidas <[EMAIL PROTECTED]> wrote:
>> You are probably calling free() multiple times for the same buffer.
>> Try tracing the malloc and free calls, using the information from
>> this message:
> Hi Giorgos, thank you very much for your reply.
You are welcome :)
> ktrace.out shows:
> 0x8103400 = malloc(1024)
> 0x810b0b0 = malloc(400)
> so many malloc
> so many free
> malloc/free combinations
> 1. This clearly shows my program is trying to free a memory that has
> not been allocated. How it could have happened?
Aha. This looks remarkably like an address in the runtime stack. It
usually happens when you have a function that returns the address of a
'local' variable, instead of a newly allocated heap area, i.e.:
> 2. Is it correct to have many malloc_init()?
Yes, that's ok. If your program is threaded, FreeBSD's pthread
implementation calls malloc(3) and malloc_init() takes special care of
initializing the internal malloc state only one time.
email@example.com mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"