You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(16) |
2
(22) |
3
(23) |
4
(12) |
5
(24) |
6
(28) |
7
(16) |
|
8
(3) |
9
(2) |
10
(9) |
11
(22) |
12
(19) |
13
(19) |
14
(15) |
|
15
(10) |
16
(23) |
17
(27) |
18
(31) |
19
(26) |
20
(19) |
21
(17) |
|
22
(6) |
23
(4) |
24
(3) |
25
(14) |
26
(1) |
27
(20) |
28
(14) |
|
29
(10) |
30
(26) |
|
|
|
|
|
|
From: Maran P. <ma...@li...> - 2013-09-17 01:46:57
|
valgrind revision: 13556 VEX revision: 2764 C compiler: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3) GDB: GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6) Assembler: GNU assembler version 2.20.51.0.2-5.36.el6 20100205 C library: GNU C Library stable release version 2.12 uname -mrs: Linux 2.6.32-358.el6.s390x s390x Vendor version: Red Hat Enterprise Linux Server release 6.4 (Santiago) Nightly build on rhels390 ( RHEL 6.4 with gcc 4.4.7 on zEC12 (s390x) ) Started at 2013-09-17 03:45:25 CEST Ended at 2013-09-17 03:47:08 CEST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo mv -f priv/.deps/libvex_s390x_linux_a-host_arm_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_arm_isel.Po gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_s390x=1 -DVGO_linux=1 -DVGP_s390x_linux=1 -DVGPV_s390x_linux_vanilla=1 -Ipriv -m64 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -fno-builtin -fomit-frame-pointer -Wbad-function-cast -Wcast-qual -Wcast-align -fstrict-aliasing -Wno-long-long -Wwrite-strings -fno-stack-protector -MT priv/libvex_s390x_linux_a-host_s390_isel.o -MD -MP -MF priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo -c -o priv/libvex_s390x_linux_a-host_s390_isel.o `test -f 'priv/host_s390_isel.c' || echo './'`priv/host_s390_isel.c gcc: Internal error: Killed (program cc1) Please submit a full bug report. See <http://bugzilla.redhat.com/bugzilla> for instructions. make[3]: *** [priv/libvex_s390x_linux_a-guest_amd64_toIR.o] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_isel.Po mv -f priv/.deps/libvex_s390x_linux_a-host_arm_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_arm_defs.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-host_s390_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_defs.Po make[3]: Leaving directory `/root/nightly/valgrind-new/VEX' make[2]: *** [all] Error 2 make[2]: Leaving directory `/root/nightly/valgrind-new/VEX' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/nightly/valgrind-new' make: *** [all] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo mv -f priv/.deps/libvex_s390x_linux_a-host_ppc_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_ppc_isel.Po gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_s390x=1 -DVGO_linux=1 -DVGP_s390x_linux=1 -DVGPV_s390x_linux_vanilla=1 -Ipriv -m64 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -fno-builtin -fomit-frame-pointer -Wbad-function-cast -Wcast-qual -Wcast-align -fstrict-aliasing -Wno-long-long -Wwrite-strings -fno-stack-protector -MT priv/libvex_s390x_linux_a-host_s390_isel.o -MD -MP -MF priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo -c -o priv/libvex_s390x_linux_a-host_s390_isel.o `test -f 'priv/host_s390_isel.c' || echo './'`priv/host_s390_isel.c gcc: Internal error: Killed (program cc1) Please submit a full bug report. See <http://bugzilla.redhat.com/bugzilla> for instructions. make[3]: *** [priv/libvex_s390x_linux_a-guest_amd64_toIR.o] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f priv/.deps/libvex_s390x_linux_a-host_arm_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_arm_defs.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_isel.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-host_s390_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_defs.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Po make[3]: Leaving directory `/root/nightly/valgrind-old/VEX' make[2]: *** [all] Error 2 make[2]: Leaving directory `/root/nightly/valgrind-old/VEX' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/nightly/valgrind-old' make: *** [all] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-09-17 03:46:21.000000000 +0200 --- new.short 2013-09-17 03:47:08.000000000 +0200 *************** *** 6,8 **** Last 20 lines of verbose log follow echo ! mv -f priv/.deps/libvex_s390x_linux_a-host_ppc_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_ppc_isel.Po gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_s390x=1 -DVGO_linux=1 -DVGP_s390x_linux=1 -DVGPV_s390x_linux_vanilla=1 -Ipriv -m64 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -fno-builtin -fomit-frame-pointer -Wbad-function-cast -Wcast-qual -Wcast-align -fstrict-aliasing -Wno-long-long -Wwrite-strings -fno-stack-protector -MT priv/libvex_s390x_linux_a-host_s390_isel.o -MD -MP -MF priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo -c -o priv/libvex_s390x_linux_a-host_s390_isel.o `test -f 'priv/host_s390_isel.c' || echo './'`priv/host_s390_isel.c --- 6,8 ---- Last 20 lines of verbose log follow echo ! mv -f priv/.deps/libvex_s390x_linux_a-host_arm_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_arm_isel.Po gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_s390x=1 -DVGO_linux=1 -DVGP_s390x_linux=1 -DVGPV_s390x_linux_vanilla=1 -Ipriv -m64 -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -fno-builtin -fomit-frame-pointer -Wbad-function-cast -Wcast-qual -Wcast-align -fstrict-aliasing -Wno-long-long -Wwrite-strings -fno-stack-protector -MT priv/libvex_s390x_linux_a-host_s390_isel.o -MD -MP -MF priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo -c -o priv/libvex_s390x_linux_a-host_s390_isel.o `test -f 'priv/host_s390_isel.c' || echo './'`priv/host_s390_isel.c *************** *** 13,26 **** make[3]: *** Waiting for unfinished jobs.... - mv -f priv/.deps/libvex_s390x_linux_a-host_arm_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_arm_defs.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Po - mv -f priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_isel.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Po - mv -f priv/.deps/libvex_s390x_linux_a-host_s390_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_defs.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Po ! make[3]: Leaving directory `/root/nightly/valgrind-old/VEX' make[2]: *** [all] Error 2 ! make[2]: Leaving directory `/root/nightly/valgrind-old/VEX' make[1]: *** [all-recursive] Error 1 ! make[1]: Leaving directory `/root/nightly/valgrind-old' make: *** [all] Error 2 --- 13,26 ---- make[3]: *** Waiting for unfinished jobs.... mv -f priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_x86_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-host_s390_isel.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_isel.Po + mv -f priv/.deps/libvex_s390x_linux_a-host_arm_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_arm_defs.Po + mv -f priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_ppc_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_s390_toIR.Po mv -f priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Tpo priv/.deps/libvex_s390x_linux_a-guest_arm_toIR.Po ! mv -f priv/.deps/libvex_s390x_linux_a-host_s390_defs.Tpo priv/.deps/libvex_s390x_linux_a-host_s390_defs.Po ! make[3]: Leaving directory `/root/nightly/valgrind-new/VEX' make[2]: *** [all] Error 2 ! make[2]: Leaving directory `/root/nightly/valgrind-new/VEX' make[1]: *** [all-recursive] Error 1 ! make[1]: Leaving directory `/root/nightly/valgrind-new' make: *** [all] Error 2 |
|
From: Petar J. <mip...@gm...> - 2013-09-17 01:32:05
|
Have you missed to add threadname_xml.stdout.exp and threadname.stdout.exp?
Regards,
Petar
On Mon, Sep 16, 2013 at 7:08 PM, <sv...@va...> wrote:
> Author: florian
> Date: Mon Sep 16 17:08:50 2013
> New Revision: 13553
>
> Log:
> Intercept prctl(PR_SET_NAME, name) and store the thread name so it
> can be used in error messages. That should be helpful when debugging
> multithreaded applications.
> Patch by Matthias Schwarzott <zz...@ge...> with some minor
> modifications. Fixes BZ 322254.
>
> Added:
> trunk/memcheck/tests/threadname.c
> trunk/memcheck/tests/threadname.stderr.exp
> trunk/memcheck/tests/threadname.vgtest
> trunk/memcheck/tests/threadname_xml.stderr.exp
> trunk/memcheck/tests/threadname_xml.vgtest
> Modified:
> trunk/NEWS
> trunk/coregrind/m_errormgr.c
> trunk/coregrind/m_gdbserver/server.c
> trunk/coregrind/m_scheduler/scheduler.c
> trunk/coregrind/m_syswrap/syswrap-linux.c
> trunk/coregrind/pub_core_threadstate.h
> trunk/docs/internals/xml-output-protocol4.txt
> trunk/memcheck/tests/ (props changed)
> trunk/memcheck/tests/Makefile.am
>
> Modified: trunk/NEWS
>
> ==============================================================================
> --- trunk/NEWS (original)
> +++ trunk/NEWS Mon Sep 16 17:08:50 2013
> @@ -464,6 +464,9 @@
> 321969 ppc32 and ppc64 don't support [lf]setxattr
> FIXED r13449
>
> +322254 Show threadname together with tid if set by application
> + FIXED r13553
> +
> 322368 Assertion failure in wqthread_hijack under OS X 10.8
> FIXED 13523
>
>
> Modified: trunk/coregrind/m_errormgr.c
>
> ==============================================================================
> --- trunk/coregrind/m_errormgr.c (original)
> +++ trunk/coregrind/m_errormgr.c Mon Sep 16 17:08:50 2013
> @@ -591,6 +591,10 @@
> VG_(printf_xml)("<error>\n");
> VG_(printf_xml)(" <unique>0x%x</unique>\n", err->unique);
> VG_(printf_xml)(" <tid>%d</tid>\n", err->tid);
> + ThreadState* tst = VG_(get_ThreadState)(err->tid);
> + if (tst->thread_name) {
> + VG_(printf_xml)(" <threadname>%s</threadname>\n",
> tst->thread_name);
> + }
>
> /* actually print it */
> VG_TDICT_CALL( tool_pp_Error, err );
> @@ -608,7 +612,12 @@
>
> if (VG_(tdict).tool_show_ThreadIDs_for_errors
> && err->tid > 0 && err->tid != last_tid_printed) {
> - VG_(umsg)("Thread %d:\n", err->tid );
> + ThreadState* tst = VG_(get_ThreadState)(err->tid);
> + if (tst->thread_name) {
> + VG_(umsg)("Thread %d %s:\n", err->tid, tst->thread_name );
> + } else {
> + VG_(umsg)("Thread %d:\n", err->tid );
> + }
> last_tid_printed = err->tid;
> }
>
>
> Modified: trunk/coregrind/m_gdbserver/server.c
>
> ==============================================================================
> --- trunk/coregrind/m_gdbserver/server.c (original)
> +++ trunk/coregrind/m_gdbserver/server.c Mon Sep 16 17:08:50 2013
> @@ -588,10 +588,18 @@
> ti = gdb_id_to_thread (gdb_id);
> if (ti != NULL) {
> tst = (ThreadState *) inferior_target_data (ti);
> - /* Additional info is the tid and the thread status. */
> - VG_(snprintf) (status, sizeof(status), "tid %d %s",
> - tst->tid,
> - VG_(name_of_ThreadStatus)(tst->status));
> + /* Additional info is the tid, the thread status and the thread's
> + name, if any. */
> + if (tst->thread_name) {
> + VG_(snprintf) (status, sizeof(status), "tid %d %s %s",
> + tst->tid,
> + VG_(name_of_ThreadStatus)(tst->status),
> + tst->thread_name);
> + } else {
> + VG_(snprintf) (status, sizeof(status), "tid %d %s",
> + tst->tid,
> + VG_(name_of_ThreadStatus)(tst->status));
> + }
> hexify (arg_own_buf, status, strlen(status));
> return;
> } else {
>
> Modified: trunk/coregrind/m_scheduler/scheduler.c
>
> ==============================================================================
> --- trunk/coregrind/m_scheduler/scheduler.c (original)
> +++ trunk/coregrind/m_scheduler/scheduler.c Mon Sep 16 17:08:50 2013
> @@ -238,6 +238,7 @@
> if (VG_(threads)[i].status == VgTs_Empty) {
> VG_(threads)[i].status = VgTs_Init;
> VG_(threads)[i].exitreason = VgSrc_None;
> + VG_(threads)[i].thread_name = NULL;
> return i;
> }
> }
> @@ -616,6 +617,7 @@
> VG_(threads)[i].client_stack_szB = 0;
> VG_(threads)[i].client_stack_highest_word = (Addr)NULL;
> VG_(threads)[i].err_disablement_level = 0;
> + VG_(threads)[i].thread_name = NULL;
> }
>
> tid_main = VG_(alloc_ThreadState)();
>
> Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
>
> ==============================================================================
> --- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
> +++ trunk/coregrind/m_syswrap/syswrap-linux.c Mon Sep 16 17:08:50 2013
> @@ -946,6 +946,18 @@
> case VKI_PR_GET_ENDIAN:
> POST_MEM_WRITE(ARG2, sizeof(Int));
> break;
> + case VKI_PR_SET_NAME:
> + {
> + const HChar* new_name = (const HChar*) ARG2;
> + if (new_name) { // Paranoia
> + ThreadState* tst = VG_(get_ThreadState)(tid);
> +
> + /* Don't bother reusing the memory. This is a rare event. */
> + tst->thread_name =
> + VG_(arena_strdup)(VG_AR_CORE, "syswrap.prctl", new_name);
> + }
> + }
> + break;
> }
> }
>
>
> Modified: trunk/coregrind/pub_core_threadstate.h
>
> ==============================================================================
> --- trunk/coregrind/pub_core_threadstate.h (original)
> +++ trunk/coregrind/pub_core_threadstate.h Mon Sep 16 17:08:50 2013
> @@ -357,6 +357,9 @@
> /* Per-thread jmp_buf to resume scheduler after a signal */
> Bool sched_jmpbuf_valid;
> VG_MINIMAL_JMP_BUF(sched_jmpbuf);
> +
> + /* This thread's name. NULL, if no name. */
> + HChar *thread_name;
> }
> ThreadState;
>
>
> Modified: trunk/docs/internals/xml-output-protocol4.txt
>
> ==============================================================================
> --- trunk/docs/internals/xml-output-protocol4.txt (original)
> +++ trunk/docs/internals/xml-output-protocol4.txt Mon Sep 16 17:08:50 2013
> @@ -408,6 +408,7 @@
> <error>
> <unique>HEX64</unique>
> <tid>INT</tid>
> + <threadname>NAME</threadname> if set
> <kind>KIND</kind>
>
> (either WHAT or XWHAT)
> @@ -428,6 +429,10 @@
> is arbitrary but may be used to determine which threads produced
> which errors (at least, the first instance of each error).
>
> +* 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 <kind> tag specifies one of a small number of fixed error types,
> so that GUIs may roughly categorise errors by type if they want.
> The tags themselves are tool-specific and are defined further
>
> Modified: trunk/memcheck/tests/Makefile.am
>
> ==============================================================================
> --- trunk/memcheck/tests/Makefile.am (original)
> +++ trunk/memcheck/tests/Makefile.am Mon Sep 16 17:08:50 2013
> @@ -260,7 +260,10 @@
> wrap8.vgtest wrap8.stdout.exp wrap8.stderr.exp \
> wrap8.stdout.exp2 wrap8.stderr.exp2 \
> writev1.stderr.exp writev1.vgtest \
> - xml1.stderr.exp xml1.stdout.exp xml1.vgtest
> xml1.stderr.exp-s390x-mvc
> + xml1.stderr.exp xml1.stdout.exp xml1.vgtest
> xml1.stderr.exp-s390x-mvc \
> + threadname.vgtest threadname.stdout.exp threadname.stderr.exp \
> + threadname_xml.vgtest threadname_xml.stdout.exp \
> + threadname_xml.stderr.exp
>
> check_PROGRAMS = \
> accounting \
> @@ -335,7 +338,8 @@
> wcs \
> xml1 \
> wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 \
> - writev1
> + writev1 \
> + threadname
>
> if DWARF4
> check_PROGRAMS += dw4
> @@ -367,6 +371,7 @@
> err_disable3_LDADD = -lpthread
> err_disable4_LDADD = -lpthread
> thread_alloca_LDADD = -lpthread
> +threadname_LDADD = -lpthread
>
> error_counts_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
>
>
> Added: trunk/memcheck/tests/threadname.c
>
> ==============================================================================
> --- trunk/memcheck/tests/threadname.c (added)
> +++ trunk/memcheck/tests/threadname.c Mon Sep 16 17:08:50 2013
> @@ -0,0 +1,80 @@
> +//#define _GNU_SOURCE
> +#include <stdio.h>
> +#include <pthread.h>
> +#include <string.h>
> +#include <stdlib.h>
> +#include <sys/prctl.h>
> +#include <sys/types.h>
> +#include <unistd.h>
> +#include <assert.h>
> +
> +static pthread_t children[3];
> +
> +void bad_things(int offset)
> +{
> + char* m = malloc(sizeof(char)*offset);
> + m[offset] = 0;
> + free(m);
> +}
> +
> +void* child_fn_2 ( void* arg )
> +{
> + const char* threadname = "012345678901234";
> +
> + pthread_setname_np(pthread_self(), threadname);
> +
> + bad_things(4);
> +
> + return NULL;
> +}
> +
> +void* child_fn_1 ( void* arg )
> +{
> + const char* threadname = "try1";
> + int r;
> +
> + pthread_setname_np(pthread_self(), threadname);
> +
> + bad_things(3);
> +
> + r = pthread_create(&children[2], NULL, child_fn_2, NULL);
> + assert(!r);
> +
> + r = pthread_join(children[2], NULL);
> + assert(!r);
> +
> + return NULL;
> +}
> +
> +void* child_fn_0 ( void* arg )
> +{
> + int r;
> +
> + bad_things(2);
> +
> + r = pthread_create(&children[1], NULL, child_fn_1, NULL);
> + assert(!r);
> +
> + r = pthread_join(children[1], NULL);
> + assert(!r);
> +
> + return NULL;
> +}
> +
> +int main(int argc, const char** argv)
> +{
> + int r;
> +
> + bad_things(1);
> +
> + r = pthread_create(&children[0], NULL, child_fn_0, NULL);
> + assert(!r);
> +
> + r = pthread_join(children[0], NULL);
> + assert(!r);
> +
> + bad_things(5);
> +
> + return 0;
> +}
> +
>
> Added: trunk/memcheck/tests/threadname.stderr.exp
>
> ==============================================================================
> --- trunk/memcheck/tests/threadname.stderr.exp (added)
> +++ trunk/memcheck/tests/threadname.stderr.exp Mon Sep 16 17:08:50 2013
> @@ -0,0 +1,50 @@
> +Invalid write of size 1
> + at 0x........: bad_things (threadname.c:16)
> + by 0x........: main (threadname.c:68)
> + 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:15)
> + by 0x........: main (threadname.c:68)
> +
> +Thread 2:
> +Invalid write of size 1
> + at 0x........: bad_things (threadname.c:16)
> + by 0x........: child_fn_0 (threadname.c:53)
> + ...
> + 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:15)
> + by 0x........: child_fn_0 (threadname.c:53)
> + ...
> +
> +Thread 3 try1:
> +Invalid write of size 1
> + at 0x........: bad_things (threadname.c:16)
> + by 0x........: child_fn_1 (threadname.c:38)
> + ...
> + Address 0x........ is 0 bytes after a block of size 3 alloc'd
> + at 0x........: malloc (vg_replace_malloc.c:...)
> + by 0x........: bad_things (threadname.c:15)
> + by 0x........: child_fn_1 (threadname.c:38)
> + ...
> +
> +Thread 4 012345678901234:
> +Invalid write of size 1
> + at 0x........: bad_things (threadname.c:16)
> + by 0x........: child_fn_2 (threadname.c:26)
> + ...
> + Address 0x........ is 0 bytes after a block of size 4 alloc'd
> + at 0x........: malloc (vg_replace_malloc.c:...)
> + by 0x........: bad_things (threadname.c:15)
> + by 0x........: child_fn_2 (threadname.c:26)
> + ...
> +
> +Thread 1:
> +Invalid write of size 1
> + at 0x........: bad_things (threadname.c:16)
> + by 0x........: main (threadname.c:76)
> + 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:15)
> + by 0x........: main (threadname.c:76)
> +
>
> Added: trunk/memcheck/tests/threadname.vgtest
>
> ==============================================================================
> --- trunk/memcheck/tests/threadname.vgtest (added)
> +++ trunk/memcheck/tests/threadname.vgtest Mon Sep 16 17:08:50 2013
> @@ -0,0 +1,2 @@
> +prog: threadname
> +vgopts: -q
>
> Added: trunk/memcheck/tests/threadname_xml.stderr.exp
>
> ==============================================================================
> --- trunk/memcheck/tests/threadname_xml.stderr.exp (added)
> +++ trunk/memcheck/tests/threadname_xml.stderr.exp Mon Sep 16 17:08:50 2013
> @@ -0,0 +1,373 @@
> +<?xml version="1.0"?>
> +
> +<valgrindoutput>
> +
> +<protocolversion>4</protocolversion>
> +<protocoltool>memcheck</protocoltool>
> +
> +<preamble>
> + <line>...</line>
> + <line>...</line>
> + <line>...</line>
> + <line>...</line>
> +</preamble>
> +
> +<pid>...</pid>
> +<ppid>...</ppid>
> +<tool>memcheck</tool>
> +
> +<args>
> + <vargv>...</vargv>
> + <argv>
> + <exe>./threadname</exe>
> + </argv>
> +</args>
> +
> +<status>
> + <state>RUNNING</state>
> + <time>...</time>
> +</status>
> +
> +<error>
> + <unique>0x........</unique>
> + <tid>...</tid>
> + <kind>InvalidWrite</kind>
> + <what>Invalid write of size 1</what>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>main</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> + <auxwhat>Address 0x........ is 0 bytes after a block of size 1
> alloc'd</auxwhat>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>malloc</fn>
> + <dir>...</dir>
> + <file>vg_replace_malloc.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>main</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> +</error>
> +
> +<error>
> + <unique>0x........</unique>
> + <tid>...</tid>
> + <kind>InvalidWrite</kind>
> + <what>Invalid write of size 1</what>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>child_fn_0</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>start_thread</fn>
> + <dir>...</dir>
> + <file>pthread_create.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> + <auxwhat>Address 0x........ is 0 bytes after a block of size 2
> alloc'd</auxwhat>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>malloc</fn>
> + <dir>...</dir>
> + <file>vg_replace_malloc.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>child_fn_0</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>start_thread</fn>
> + <dir>...</dir>
> + <file>pthread_create.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> +</error>
> +
> +<error>
> + <unique>0x........</unique>
> + <tid>...</tid>
> + <threadname>try1</threadname>
> + <kind>InvalidWrite</kind>
> + <what>Invalid write of size 1</what>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>child_fn_1</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>start_thread</fn>
> + <dir>...</dir>
> + <file>pthread_create.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> + <auxwhat>Address 0x........ is 0 bytes after a block of size 3
> alloc'd</auxwhat>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>malloc</fn>
> + <dir>...</dir>
> + <file>vg_replace_malloc.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>child_fn_1</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>start_thread</fn>
> + <dir>...</dir>
> + <file>pthread_create.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> +</error>
> +
> +<error>
> + <unique>0x........</unique>
> + <tid>...</tid>
> + <threadname>012345678901234</threadname>
> + <kind>InvalidWrite</kind>
> + <what>Invalid write of size 1</what>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>child_fn_2</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>start_thread</fn>
> + <dir>...</dir>
> + <file>pthread_create.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> + <auxwhat>Address 0x........ is 0 bytes after a block of size 4
> alloc'd</auxwhat>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>malloc</fn>
> + <dir>...</dir>
> + <file>vg_replace_malloc.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>child_fn_2</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>start_thread</fn>
> + <dir>...</dir>
> + <file>pthread_create.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> +</error>
> +
> +<error>
> + <unique>0x........</unique>
> + <tid>...</tid>
> + <kind>InvalidWrite</kind>
> + <what>Invalid write of size 1</what>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>main</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> + <auxwhat>Address 0x........ is 0 bytes after a block of size 5
> alloc'd</auxwhat>
> + <stack>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>malloc</fn>
> + <dir>...</dir>
> + <file>vg_replace_malloc.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>bad_things</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + <frame>
> + <ip>0x........</ip>
> + <obj>...</obj>
> + <fn>main</fn>
> + <dir>...</dir>
> + <file>threadname.c</file>
> + <line>...</line>
> + </frame>
> + </stack>
> +</error>
> +
> +
> +<status>
> + <state>FINISHED</state>
> + <time>...</time>
> +</status>
> +
> +<errorcounts>
> + <pair>
> + <count>...</count>
> + <unique>0x........</unique>
> + </pair>
> + <pair>
> + <count>...</count>
> + <unique>0x........</unique>
> + </pair>
> + <pair>
> + <count>...</count>
> + <unique>0x........</unique>
> + </pair>
> + <pair>
> + <count>...</count>
> + <unique>0x........</unique>
> + </pair>
> + <pair>
> + <count>...</count>
> + <unique>0x........</unique>
> + </pair>
> +</errorcounts>
> +
> +<suppcounts>...</suppcounts>
> +
> +</valgrindoutput>
> +
>
> Added: trunk/memcheck/tests/threadname_xml.vgtest
>
> ==============================================================================
> --- trunk/memcheck/tests/threadname_xml.vgtest (added)
> +++ trunk/memcheck/tests/threadname_xml.vgtest Mon Sep 16 17:08:50 2013
> @@ -0,0 +1,3 @@
> +prog: threadname
> +vgopts: --xml=yes --xml-fd=2 --log-file=/dev/null
> +stderr_filter: filter_xml
>
>
>
> ------------------------------------------------------------------------------
> LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8,
> SharePoint
> 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack
> includes
> Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.
> http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
>
|