n-i-bz Enable rt_sigpending syscall on ppc64 linux.
n-i-bz mremap did not work properly on shared memory
n-i-bz Fix incorrect sizeof expression in syswrap-xen.c reported by Coverity
+n-i-bz In VALGRIND_PRINTF write out thread name, if any, to xml
Release 3.10.1 (25 November 2014)
VG_(printf_xml)( "<clientmsg>\n" );
VG_(printf_xml)( " <tid>%d</tid>\n", tid );
+ const ThreadState *tst = VG_(get_ThreadState)(tid);
+ if (tst->thread_name)
+ VG_(printf_xml)(" <threadname>%s</threadname>\n", tst->thread_name);
VG_(printf_xml)( " <text>" );
count = VG_(vprintf_xml)( xml_format, *vargsp );
VG_(printf_xml)( " </text>\n" );
<clientmsg>
<tid>INT</tid>
+ <threadname>NAME</threadname> if set
<text>...</text>
</clientmsg>
<clientmsg>
<tid>INT</tid>
+ <threadname>NAME</threadname> if set
<text>...</text>
STACK
</clientmsg>
* The <tid> tag indicates the Valgrind thread number.
+* The <threadname> tag identifies the name of the thread if it was
+ set by the client application. If no name was set, the tag is
+ omitted.
+
* The <text> tag indicates the message as specified in the client request
(properly translated to XML).
#include <sys/types.h>
#include <unistd.h>
#include <assert.h>
-
+#include "valgrind.h"
static pthread_t children[3];
# endif
bad_things(3);
+ VALGRIND_PRINTF("%s", "I am in child_fn_1\n");
r = pthread_create(&children[2], NULL, child_fn_2, NULL);
assert(!r);
Invalid write of size 1
at 0x........: bad_things (threadname.c:21)
- by 0x........: main (threadname.c:81)
+ by 0x........: main (threadname.c:82)
Address 0x........ is 0 bytes after a block of size 1 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:20)
- by 0x........: main (threadname.c:81)
+ by 0x........: main (threadname.c:82)
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:21)
- by 0x........: child_fn_0 (threadname.c:66)
+ by 0x........: child_fn_0 (threadname.c:67)
...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:20)
- by 0x........: child_fn_0 (threadname.c:66)
+ by 0x........: child_fn_0 (threadname.c:67)
...
Thread 3 try1:
by 0x........: child_fn_1 (threadname.c:51)
...
+I am in child_fn_1
Thread 4 012345678901234:
Invalid write of size 1
at 0x........: bad_things (threadname.c:21)
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:21)
- by 0x........: main (threadname.c:89)
+ by 0x........: main (threadname.c:90)
Address 0x........ is 0 bytes after a block of size 5 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:20)
- by 0x........: main (threadname.c:89)
+ by 0x........: main (threadname.c:90)