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
|
2
|
3
|
4
|
5
|
6
|
7
(2) |
|
8
|
9
(8) |
10
(4) |
11
(1) |
12
|
13
(1) |
14
(2) |
|
15
|
16
|
17
|
18
(1) |
19
(6) |
20
(4) |
21
(1) |
|
22
(1) |
23
(1) |
24
(1) |
25
|
26
|
27
(8) |
28
|
|
29
|
30
(1) |
31
(4) |
|
|
|
|
|
From: Paul F. <pj...@wa...> - 2022-05-27 19:05:03
|
On 5/27/22 14:55, Reddy K wrote: > Hi Team, > > I am running valgrind for a process to check memory corruptions and I > have installed all related debuginfo and debugsource for that process. > > Valgrind is stopping and the system is giving the below error on the > terminal and there is no information related to this error in the > messages file and also it is not giving the information about the > memory allocation. > > -------------------- > ** Error in `krb5kdc': free(): invalid next size (fast): > 0x0000000001c8d8c0 *** > -------------------------- > > I want to know why this is happening. So can you please me on this > Hi You need to tell us more. The above message is not from Valgrind, it is from libc. Could you tell us which Valgrind version which operating system which compiler you are using. I also suggest that you run Valgrind with --trace-children=yes and send the output if you do not understand it. A+ Paul |
|
From: Reddy K <har...@gm...> - 2022-05-27 14:55:33
|
Hi Team, I am running valgrind for a process to check memory corruptions and I have installed all related debuginfo and debugsource for that process. Valgrind is stopping and the system is giving the below error on the terminal and there is no information related to this error in the messages file and also it is not giving the information about the memory allocation. -------------------- ** Error in `krb5kdc': free(): invalid next size (fast): 0x0000000001c8d8c0 *** -------------------------- I want to know why this is happening. So can you please me on this Thanks & Regards Haritha |
|
From: Paul F. <pa...@so...> - 2022-05-27 13:46:00
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=807ea10a5cb78794f23110835f9b0b271dbd4df7 commit 807ea10a5cb78794f23110835f9b0b271dbd4df7 Author: Paul Floyd <pj...@wa...> Date: Fri May 27 15:45:25 2022 +0200 Fix typo in added EXTRA_DIST expected Diff: --- drd/tests/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drd/tests/Makefile.am b/drd/tests/Makefile.am index 700f9b53e4..771f47ccce 100755 --- a/drd/tests/Makefile.am +++ b/drd/tests/Makefile.am @@ -74,7 +74,7 @@ EXTRA_DIST = \ annotate_trace_memory.stderr.exp-mips32 \ annotate_trace_memory.vgtest \ annotate_trace_memory_xml.stderr.exp-32bit \ - annotate_trace_memory_xml.stderr.exp-32bit-ckang \ + annotate_trace_memory_xml.stderr.exp-32bit-clang \ annotate_trace_memory_xml.stderr.exp-64bit \ annotate_trace_memory_xml.stderr.exp-mips32 \ annotate_trace_memory_xml.vgtest \ |
|
From: Paul F. <pa...@so...> - 2022-05-27 13:20:45
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=9d72116c9de21591a6eda06b95d135f64ccdc14a commit 9d72116c9de21591a6eda06b95d135f64ccdc14a Author: Paul Floyd <pj...@wa...> Date: Fri May 27 15:19:12 2022 +0200 Second attempt at new expected Not sure what I did wrong, but it failed straight away. Might have been playing with the .cpp file? Diff: --- memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit b/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit index 09037c1fd9..4f1cc7a2d8 100644 --- a/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit +++ b/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit @@ -3,7 +3,7 @@ valgrind output will go to log VALGRIND_DO_LEAK_CHECK x bytes in 1 blocks are definitely lost in loss record ... of ... by 0x........: doit() (leak_cpp_interior.cpp:119) - by 0x........: main (leak_cpp_interior.cpp:135) + by 0x........: main (leak_cpp_interior.cpp:134) LEAK SUMMARY: definitely lost: x bytes in 1 blocks |
|
From: Paul F. <pa...@so...> - 2022-05-27 12:50:57
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=2d97f34c8256ce8effb292a96af6e4bbff13a3a0 commit 2d97f34c8256ce8effb292a96af6e4bbff13a3a0 Author: Paul Floyd <pj...@wa...> Date: Fri May 27 14:50:15 2022 +0200 Add a suppression For FreeBSD DRD Occurs with clang++13 Diff: --- freebsd-drd.supp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/freebsd-drd.supp b/freebsd-drd.supp index f2234600b6..764c1d1ce6 100644 --- a/freebsd-drd.supp +++ b/freebsd-drd.supp @@ -49,6 +49,11 @@ obj:*/lib*/libthr.so.3 obj:/libexec/ld-elf*.so.1 } +{ + DRD-MANY4 + drd:ConflictingAccess + obj:/lib/libthr.so.3 +} { DRD-UNWIND1 drd:ConflictingAccess |
|
From: Paul F. <pa...@so...> - 2022-05-27 12:50:19
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=b8eddd02264f89dc08d28adf6a7b1ede9ac09d34 commit b8eddd02264f89dc08d28adf6a7b1ede9ac09d34 Author: Paul Floyd <pj...@wa...> Date: Fri May 27 14:49:25 2022 +0200 Forgot to push Makefile.am with EXTRA_DIST for new expecteds Diff: --- drd/tests/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drd/tests/Makefile.am b/drd/tests/Makefile.am index d7d73447bd..700f9b53e4 100755 --- a/drd/tests/Makefile.am +++ b/drd/tests/Makefile.am @@ -69,10 +69,12 @@ EXTRA_DIST = \ annotate_ignore_write2.stderr.exp-solaris \ annotate_ignore_write2.vgtest \ annotate_trace_memory.stderr.exp-32bit \ + annotate_trace_memory.stderr.exp-32bit-clang \ annotate_trace_memory.stderr.exp-64bit \ annotate_trace_memory.stderr.exp-mips32 \ annotate_trace_memory.vgtest \ annotate_trace_memory_xml.stderr.exp-32bit \ + annotate_trace_memory_xml.stderr.exp-32bit-ckang \ annotate_trace_memory_xml.stderr.exp-64bit \ annotate_trace_memory_xml.stderr.exp-mips32 \ annotate_trace_memory_xml.vgtest \ |
|
From: Paul F. <pa...@so...> - 2022-05-27 12:21:30
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=60d2018d7c2264dd1385f7129b40edf5313017b4 commit 60d2018d7c2264dd1385f7129b40edf5313017b4 Author: Paul Floyd <pj...@wa...> Date: Fri May 27 14:18:18 2022 +0200 Add new expecteds for drd/tests/annotate_trace_memory[_xml] With clang13 x86 there is a code gen difference wrt GCC: gcc: i64 = 9; 8048a6f: c7 05 68 9f 04 08 09 movl $0x9,0x8049f68 8048a76: 00 00 00 8048a79: c7 05 6c 9f 04 08 00 movl $0x0,0x8049f6c 8048a80: 00 00 00 i64 += 0x12345678ULL; 8048a83: a1 68 9f 04 08 mov 0x8049f68,%eax 8048a88: 8b 15 6c 9f 04 08 mov 0x8049f6c,%edx 8048a8e: 05 78 56 34 12 add $0x12345678,%eax 8048a93: 83 d2 00 adc $0x0,%edx 8048a96: a3 68 9f 04 08 mov %eax,0x8049f68 8048a9b: 89 15 6c 9f 04 08 mov %edx,0x8049f6c clang: i64 = 9; 401ae2: c7 05 64 3f 40 00 00 movl $0x0,0x403f64 401ae9: 00 00 00 401aec: c7 05 60 3f 40 00 09 movl $0x9,0x403f60 401af3: 00 00 00 i64 += 0x12345678ULL; 401af6: 8b 15 60 3f 40 00 mov 0x403f60,%edx 401afc: 81 c2 78 56 34 12 add $0x12345678,%edx 401b02: 83 15 64 3f 40 00 00 adcl $0x0,0x403f64 401b09: 89 15 60 3f 40 00 mov %edx,0x403f60 401b0f: 8d 85 1c ff ff ff lea -0xe4(%ebp),%eax This inversion of the order of the low and high 32bits of the 64bit word causes a difference in traced loads and stores reported by DRD. Diff: --- .../annotate_trace_memory.stderr.exp-32bit-clang | 52 ++++ ...nnotate_trace_memory_xml.stderr.exp-32bit-clang | 302 +++++++++++++++++++++ 2 files changed, 354 insertions(+) diff --git a/drd/tests/annotate_trace_memory.stderr.exp-32bit-clang b/drd/tests/annotate_trace_memory.stderr.exp-32bit-clang new file mode 100644 index 0000000000..3e659fbc01 --- /dev/null +++ b/drd/tests/annotate_trace_memory.stderr.exp-32bit-clang @@ -0,0 +1,52 @@ + +float +store 0x........ size 4 val 1065353216/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 4 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 4 val 1077936128/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +double +store 0x........ size 8 val 4613937818241073152/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 8 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 8 val 4619567317775286272/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +uint8_t +store 0x........ size 1 val 5/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 1 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 1 val 11/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +uint16_t +store 0x........ size 2 val 7/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 2 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 2 val 8/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +uint32_t +store 0x........ size 4 val 8/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 4 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 4 val 9/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +uint64_t +store 0x........ size 4 val 0/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 4 val 9/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 4 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +load 0x........ size 4 (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 4 val 0/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +store 0x........ size 4 val 305419905/0x........ (thread x / vc ...) + at 0x........: main (annotate_trace_memory.c:?) +Done. + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/drd/tests/annotate_trace_memory_xml.stderr.exp-32bit-clang b/drd/tests/annotate_trace_memory_xml.stderr.exp-32bit-clang new file mode 100644 index 0000000000..13c7a9e5a3 --- /dev/null +++ b/drd/tests/annotate_trace_memory_xml.stderr.exp-32bit-clang @@ -0,0 +1,302 @@ +<?xml version="1.0"?> + +<valgrindoutput> + +<protocolversion>4</protocolversion> +<protocoltool>drd</protocoltool> + +<preamble> + <line>...</line> + <line>...</line> + <line>...</line> + <line>...</line> +</preamble> + +<pid>...</pid> +<ppid>...</ppid> +<tool>drd</tool> + +<args> + <vargv>...</vargv> + <argv> + <exe>./annotate_trace_memory</exe> + </argv> +</args> + +<status> + <state>RUNNING</state> + <time>...</time> +</status> + +float + <trace><text>store 0x........ size 4 val 1065353216/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 4 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 4 val 1077936128/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> +double + <trace><text>store 0x........ size 8 val 4613937818241073152/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 8 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 8 val 4619567317775286272/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> +uint8_t + <trace><text>store 0x........ size 1 val 5/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 1 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 1 val 11/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> +uint16_t + <trace><text>store 0x........ size 2 val 7/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 2 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 2 val 8/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> +uint32_t + <trace><text>store 0x........ size 4 val 8/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 4 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 4 val 9/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> +uint64_t + <trace><text>store 0x........ size 4 val 0/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 4 val 9/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 4 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>load 0x........ size 4 (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 4 val 0/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> + <trace><text>store 0x........ size 4 val 305419905/0x........ (thread x / vc ...)</text> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>annotate_trace_memory.c</file> + <line>...</line> + </frame> + </stack> + </trace> +Done. + +<status> + <state>FINISHED</state> + <time>...</time> +</status> + +<errorcounts> +</errorcounts> + +<suppcounts>...</suppcounts> + +</valgrindoutput> + |
|
From: Paul F. <pa...@so...> - 2022-05-27 11:56:51
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=776c38e30b9a4ee73ccd0f694c77f83f577586f3 commit 776c38e30b9a4ee73ccd0f694c77f83f577586f3 Author: Paul Floyd <pj...@wa...> Date: Fri May 27 13:27:58 2022 +0200 Add another expected for memcheck/tests/leak_cpp_interior There is a difference between the outputs when using 32bit and 64bit with clang++/libc++ Running the test in a shell with the output piped through c++filt I see 64bit: --2153-- operator new[](unsigned long)(32) = 0x55AB040 --2153-- malloc(31) = 0x55AB0A0 --2153-- operator new[](unsigned long)(8) = 0x55AB100 --2153-- operator new(unsigned long)(16) = 0x55AB150 --2153-- operator new(unsigned long)(16) = 0x55AB1A0 --2153-- operator new(unsigned long)(32) = 0x55AB1F0 --2153-- operator new(unsigned long)(32) = 0x55AB250 32bit: --55024-- operator new[](unsigned int)(28) = 0x7D41030 --55024-- malloc(31) = 0x7D41090 --55024-- operator new[](unsigned int)(4) = 0x7D410F0 --55024-- operator new(unsigned int)(8) = 0x7D41140 --55024-- operator new(unsigned int)(8) = 0x7D41190 --55024-- operator new(unsigned int)(16) = 0x7D411E0 --55024-- operator new(unsigned int)(16) = 0x7D41230 --55024-- operator new(unsigned int)(32) = 0x7D41280 Note the extra 32 byte allocation at the end. This is because of str2 += " rocks (str2)\n"; // interior ptr. at the end of void doit(void) Details of the mechaism here https://stackoverflow.com/questions/21694302/what-are-the-mechanics-of-short-string-optimization-in-libc str2 starts containing 9 characters "Valgrind" Catenating to it makes it "Valgrind rocks (str2)\n" which is exactly 22 characters. The 64bit SSO has a capacity of 22 chars, so there is no need to switch from SSO in the stack variable to using heap allocation. The 32bit SSO only has a capacity of 10, so there there is space in the SSO for the initial string but the catenation expands it beyond the SSO capacity and there is a heap allocation via the std::basic_string allocator, which calls raw ::operator new. Diff: --- memcheck/tests/Makefile.am | 2 +- .../leak_cpp_interior.stderr.exp-freebsd-32bit | 131 +++++++++++++++++++++ 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index eb9487272d..302006e8bc 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -366,7 +366,7 @@ EXTRA_DIST = \ wrapmallocstatic.stderr.exp \ writev1.stderr.exp writev1.stderr.exp-solaris writev1.vgtest \ xml1.stderr.exp xml1.stdout.exp xml1.vgtest xml1.stderr.exp-s390x-mvc \ - leak_cpp_interior.stderr.exp-freebsd + leak_cpp_interior.stderr.exp-freebsd leak_cpp_interior.stderr.exp-freebsd-32bit check_PROGRAMS = \ accounting \ diff --git a/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit b/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit new file mode 100644 index 0000000000..09037c1fd9 --- /dev/null +++ b/memcheck/tests/leak_cpp_interior.stderr.exp-freebsd-32bit @@ -0,0 +1,131 @@ + +valgrind output will go to log +VALGRIND_DO_LEAK_CHECK +x bytes in 1 blocks are definitely lost in loss record ... of ... + by 0x........: doit() (leak_cpp_interior.cpp:119) + by 0x........: main (leak_cpp_interior.cpp:135) + +LEAK SUMMARY: + definitely lost: x bytes in 1 blocks + indirectly lost: 0 bytes in 0 blocks + possibly lost: 0 bytes in 0 blocks + still reachable: x bytes in 7 blocks + of which reachable via heuristic: + length64 : x bytes in 1 blocks + newarray : x bytes in 1 blocks + multipleinheritance: x bytes in 2 blocks +Reachable blocks (those to which a pointer was found) are not shown. +To see them, rerun with: --leak-check=full --show-leak-kinds=all + +leak_check summary heuristics multipleinheritance +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: x (+x) bytes in 2 (+2) blocks + still reachable: x (-x) bytes in 5 (-2) blocks + of which reachable via heuristic: + length64 : 0 (-x) bytes in 0 (-1) blocks + newarray : 0 (-x) bytes in 0 (-1) blocks + multipleinheritance: x (+0) bytes in 2 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary any heuristics newarray +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: x (-x) bytes in 3 (+1) blocks + still reachable: x (+x) bytes in 4 (-1) blocks + of which reachable via heuristic: + newarray : x (+x) bytes in 1 (+1) blocks + multipleinheritance: 0 (-x) bytes in 0 (-2) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics length64 +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: x (-x) bytes in 3 (+0) blocks + still reachable: x (+x) bytes in 4 (+0) blocks + of which reachable via heuristic: + length64 : x (+x) bytes in 1 (+1) blocks + newarray : 0 (-x) bytes in 0 (-1) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics stdstring +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: x (+x) bytes in 4 (+1) blocks + still reachable: x (-x) bytes in 3 (-1) blocks + of which reachable via heuristic: + length64 : 0 (-x) bytes in 0 (-1) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics multipleinheritance,newarray,stdstring,length64 +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 0 (-x) bytes in 0 (-4) blocks + still reachable: x (+x) bytes in 7 (+4) blocks + of which reachable via heuristic: + length64 : x (+x) bytes in 1 (+1) blocks + newarray : x (+x) bytes in 1 (+1) blocks + multipleinheritance: x (+x) bytes in 2 (+2) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics all +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 0 (+0) bytes in 0 (+0) blocks + still reachable: x (+0) bytes in 7 (+0) blocks + of which reachable via heuristic: + length64 : x (+0) bytes in 1 (+0) blocks + newarray : x (+0) bytes in 1 (+0) blocks + multipleinheritance: x (+0) bytes in 2 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics none +LEAK SUMMARY: + definitely lost: x (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: x (+x) bytes in 4 (+4) blocks + still reachable: x (-x) bytes in 3 (-4) blocks + of which reachable via heuristic: + length64 : 0 (-x) bytes in 0 (-1) blocks + newarray : 0 (-x) bytes in 0 (-1) blocks + multipleinheritance: 0 (-x) bytes in 0 (-2) blocks +To see details of leaked memory, give 'full' arg to leak_check + +Searching for pointers pointing in x bytes from 0x........ +*0x........ interior points at x bytes inside 0x........ + Address 0x........ is 0 bytes inside data symbol "ptr" +block at 0x........ considered reachable by ptr 0x........ using newarray heuristic +Searching for pointers pointing in x bytes from 0x........ +*0x........ interior points at x bytes inside 0x........ + Address 0x........ is 0 bytes inside data symbol "ptr" +block at 0x........ considered reachable by ptr 0x........ using newarray heuristic +destruct MyClass +destruct MyClass +destruct MyClass +destruct Ce +destruct Be +destruct Ae +destruct Ce +destruct Be +destruct Ae +destruct C +destruct B +destruct A +destruct C +destruct B +destruct A +Finished! + +HEAP SUMMARY: + in use at exit: 0 bytes in 0 blocks + +All heap blocks were freed -- no leaks are possible + +For lists of detected and suppressed errors, rerun with: -s +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) |