tracing malloc/free call
Marco Atzeri
marco.atzeri@gmail.com
Fri Jan 16 09:08:00 GMT 2015
On 1/15/2015 8:59 PM, Alexander.Kleinsorge@gmx.de wrote:
> Hi Marco,
> freeing an address that is not alligned to typically 4 or 8 bytes is
> never possible,
> because malloc would never return such.
> Your pointer ends with 0x..1 so it cannot be alligned on any architecture.
> regards,
> Alexander
I know. The application is crashing.
It is clearly a free call with a corrupted pointer,
but not knowing the caller address make difficult to
identify what is corrupting the pointer.
> Your Post:
>
> Debugging a program I am trying to catch where this call is happening
>
> 17 1499678 [main] ncview 1484 free: (0x6000D7961), called by 0x180115A0B
>
> unfortunately the 0x180115A0B address is not real caller address
>
> /usr/src/debug/cygwin-1.7.33-1/winsup/cygwin/malloc_wrapper.cc
>
> extern "C" void
> free (void *p)
> {
> malloc_printf ("(%p), called by %p", p, __builtin_return_address (0));
> if (!use_internal)
> user_data->free (p);
> else
> {
> __malloc_lock ();
> dlfree (p);
> __malloc_unlock ();
> }
> }
>
>
> Any way to improve the tracing ?
> $ uname -svr
> CYGWIN_NT-6.1 1.7.33-2(0.280/5/3) 2014-11-13 15:47
>
> Regards
> Marco
>
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list