Hi Mathieu, Yes, feel free to add my Signed-off-by tag to the patch header. I would just ask you to use my gmail address.
Have a nice evening, Best regards, Olivier On Mon, Jan 19, 2015 at 5:48 PM, Mathieu Desnoyers < [email protected]> wrote: > ------------------------------ > > *From: *"Olivier Delbeke" <[email protected]> > *To: *"Mathieu Desnoyers" <[email protected]> > *Sent: *Monday, January 19, 2015 2:03:07 AM > *Subject: *Re: [lttng-dev] Addition of the return address > toliblttng-ust-libc-wrapper > > Hi Mathieu, > > Here is the patch you asked me : *(See attached file: > lttng-return-address.patch)* > > First , I named the variable for return address "ra", then changed it to > "caller". Of course, you're free to change it (to make it more clear or > more in line with the rest of your code). > > > Great! > > Can I add your Signed-off-by tag to the patch header ? > > Thanks, > > Mathieu > > > Best regards, > > > *Olivier Delbeke **Senior Software Engineer* > [email protected] / T. +32 2 389 25 53 > ------------------------------ > *AWTC Europe S.A. *- Avenue de l’Industrie, 19 - 1420 Braine-l’Alleud > - Belgium - www.aweurope.eu - www.aisin-aw.co.jp > VAT : BE 0474.474.114 - RPM Nivelles > > > > [image: Inactive hide details for Mathieu Desnoyers ---01/16/2015 09:41:08 > PM---Mathieu Desnoyers <[email protected]>]Mathieu Desnoyers > ---01/16/2015 09:41:08 PM---Mathieu Desnoyers < > [email protected]> > > > *Mathieu Desnoyers <[email protected] > <[email protected]>>* > > 01/16/2015 09:41 PM > > > To > > > Olivier Delbeke <[email protected]> > > > cc > > > [email protected] > > > Subject > > > Re: [lttng-dev] Addition of the return address to > liblttng-ust-libc-wrapper > > > ------------------------------ > > *From: *"Olivier Delbeke" <[email protected]> > * To: *[email protected] > * Sent: *Tuesday, January 13, 2015 10:50:38 AM > * Subject: *[lttng-dev] Addition of the return address to > liblttng-ust-libc-wrapper > > Hi guys, > > > I am using liblttng-ust-libc-wrapper to detect memory leaks in my > applications. > In order to identify not only the thread where the unfreed allocations > are done, but also the calling function, I extended the > liblttng-ust-libc-wrapper to log the "return address" > (__builtin_return_address(0)) in addition to the parameters of malloc(). It > solves my problem and does not affect Trace Compass. > Was this the right thing to do ? > If it is, then I guess that it might interest other people too. > > After further thought, I'm interested to merge this into UST master. > > Can you re-send either as an attachment, or as plain text without the > base64 encoding ? > > Thanks! > > Mathieu > > > > diff -Nurd b/liblttng-ust-libc-wrapper/lttng-ust-malloc.c > c/liblttng-ust-libc-wrapper/lttng-ust-malloc.c > --- b/liblttng-ust-libc-wrapper/lttng-ust-malloc.c 2015-01-06 > 17:14:34.000000000 +0100 > +++ c/liblttng-ust-libc-wrapper/lttng-ust-malloc.c 2015-01-06 > 17:16:40.811145106 +0100 > @@ -260,7 +260,7 @@ > } > retval = cur_alloc.malloc(size); > if (URCU_TLS(malloc_nesting) == 1) { > - tracepoint(ust_libc, malloc, size, retval); > + tracepoint(ust_libc, malloc, size, retval, > __builtin_return_address(0) ); > } > URCU_TLS(malloc_nesting)--; > return retval; > @@ -279,7 +279,7 @@ > } > > if (URCU_TLS(malloc_nesting) == 1) { > - tracepoint(ust_libc, free, ptr); > + tracepoint(ust_libc, free, ptr, __builtin_return_address(0) ); > } > > if (cur_alloc.free == NULL) { > @@ -308,7 +308,7 @@ > } > retval = cur_alloc.calloc(nmemb, size); > if (URCU_TLS(malloc_nesting) == 1) { > - tracepoint(ust_libc, calloc, nmemb, size, retval); > + tracepoint(ust_libc, calloc, nmemb, size, retval, > __builtin_return_address(0) ); > } > URCU_TLS(malloc_nesting)--; > return retval; > @@ -360,7 +360,7 @@ > retval = cur_alloc.realloc(ptr, size); > end: > if (URCU_TLS(malloc_nesting) == 1) { > - tracepoint(ust_libc, realloc, ptr, size, retval); > + tracepoint(ust_libc, realloc, ptr, size, retval, > __builtin_return_address(0) ); > } > URCU_TLS(malloc_nesting)--; > return retval; > @@ -380,7 +380,7 @@ > } > retval = cur_alloc.memalign(alignment, size); > if (URCU_TLS(malloc_nesting) == 1) { > - tracepoint(ust_libc, memalign, alignment, size, retval); > + tracepoint(ust_libc, memalign, alignment, size, retval, > __builtin_return_address(0) ); > } > URCU_TLS(malloc_nesting)--; > return retval; > @@ -401,7 +401,7 @@ > retval = cur_alloc.posix_memalign(memptr, alignment, size); > if (URCU_TLS(malloc_nesting) == 1) { > tracepoint(ust_libc, posix_memalign, *memptr, alignment, size, > - retval); > + retval, __builtin_return_address(0) ); > } > URCU_TLS(malloc_nesting)--; > return retval; > diff -Nurd b/liblttng-ust-libc-wrapper/ust_libc.h > c/liblttng-ust-libc-wrapper/ust_libc.h > --- b/liblttng-ust-libc-wrapper/ust_libc.h 2015-01-06 > 17:14:34.000000000 +0100 > +++ c/liblttng-ust-libc-wrapper/ust_libc.h 2015-01-06 > 17:16:40.811145106 +0100 > @@ -33,54 +33,60 @@ > #include <lttng/tracepoint.h> > > TRACEPOINT_EVENT(ust_libc, malloc, > - TP_ARGS(size_t, size, void *, ptr), > + TP_ARGS(size_t, size, void *, ptr, void *, ra), > TP_FIELDS( > ctf_integer(size_t, size, size) > ctf_integer_hex(void *, ptr, ptr) > + ctf_integer_hex(void *, ra, ra) > ) > ) > > TRACEPOINT_EVENT(ust_libc, free, > - TP_ARGS(void *, ptr), > + TP_ARGS(void *, ptr, void *, ra), > TP_FIELDS( > ctf_integer_hex(void *, ptr, ptr) > + ctf_integer_hex(void *, ra, ra) > ) > ) > > TRACEPOINT_EVENT(ust_libc, calloc, > - TP_ARGS(size_t, nmemb, size_t, size, void *, ptr), > + TP_ARGS(size_t, nmemb, size_t, size, void *, ptr, void *, ra), > TP_FIELDS( > ctf_integer(size_t, nmemb, nmemb) > ctf_integer(size_t, size, size) > ctf_integer_hex(void *, ptr, ptr) > + ctf_integer_hex(void *, ra, ra) > ) > ) > > TRACEPOINT_EVENT(ust_libc, realloc, > - TP_ARGS(void *, in_ptr, size_t, size, void *, ptr), > + TP_ARGS(void *, in_ptr, size_t, size, void *, ptr, void *, ra), > TP_FIELDS( > ctf_integer_hex(void *, in_ptr, in_ptr) > ctf_integer(size_t, size, size) > ctf_integer_hex(void *, ptr, ptr) > + ctf_integer_hex(void *, ra, ra) > ) > ) > > TRACEPOINT_EVENT(ust_libc, memalign, > - TP_ARGS(size_t, alignment, size_t, size, void *, ptr), > + TP_ARGS(size_t, alignment, size_t, size, void *, ptr, void *, ra), > TP_FIELDS( > ctf_integer(size_t, alignment, alignment) > ctf_integer(size_t, size, size) > ctf_integer_hex(void *, ptr, ptr) > + ctf_integer_hex(void *, ra, ra) > ) > ) > > TRACEPOINT_EVENT(ust_libc, posix_memalign, > - TP_ARGS(void *, out_ptr, size_t, alignment, size_t, size, int, > result), > + TP_ARGS(void *, out_ptr, size_t, alignment, size_t, size, int, > result, void *, ra), > TP_FIELDS( > ctf_integer_hex(void *, out_ptr, out_ptr) > ctf_integer(size_t, alignment, alignment) > ctf_integer(size_t, size, size) > ctf_integer(int, result, result) > + ctf_integer_hex(void *, ra, ra) > ) > ) > > Best regards, > *Olivier Delbeke **Senior Software Engineer* > [email protected] / T. +32 2 389 25 53 > ------------------------------ > *AWTC Europe S.A. *- Avenue de l’Industrie, 19 - 1420 > Braine-l’Alleud - Belgium - www.aweurope.eu - www.aisin-aw.co.jp > VAT : BE 0474.474.114 - RPM Nivelles > > This mail, and any attachments thereto, is intended only for use by > the addressee(s) named herein and may contain legally privileged and/or > confidential information. If you are not the intended recipient, please > note that any review, dissemination, disclosure, alteration, printing, > copying or transmission of this mail and/or any file transmitted with it, > is strictly prohibited and may be unlawful. If you have received this mail > by mistake, please immediately notify the sender as well as our mail > administrator at [email protected], and permanently destroy the > original as well as any copy thereof. > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > > > > > -- > Mathieu Desnoyers > EfficiOS Inc. > http://www.efficios.com > *(See attached file: 1E482660.jpg)**(See attached file: ecblank.gif)* > This mail, and any attachments thereto, is intended only for use by the > addressee(s) named herein and may contain legally privileged and/or > confidential information. If you are not the intended recipient, please > note that any review, dissemination, disclosure, alteration, printing, > copying or transmission of this mail and/or any file transmitted with it, > is strictly prohibited and may be unlawful. If you have received this mail > by mistake, please immediately notify the sender as well as our mail > administrator at [email protected], and permanently destroy the > original as well as any copy thereof. > > > > > -- > Mathieu Desnoyers > EfficiOS Inc. > http://www.efficios.com > > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > >
_______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
