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
(1) |
2
(1) |
3
(1) |
4
(2) |
5
(2) |
6
|
|
7
(3) |
8
(14) |
9
(3) |
10
(7) |
11
(7) |
12
(1) |
13
(3) |
|
14
|
15
|
16
(6) |
17
(2) |
18
(6) |
19
(3) |
20
|
|
21
|
22
(1) |
23
|
24
|
25
|
26
|
27
(1) |
|
28
|
29
|
30
|
|
|
|
|
|
From: Philippe W. <phi...@so...> - 2019-04-27 16:18:36
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=4d089e27d9910c9e4e27f9422eae7ecdb5ab1a55 commit 4d089e27d9910c9e4e27f9422eae7ecdb5ab1a55 Author: Philippe Waroquiers <phi...@sk...> Date: Sat Apr 27 18:13:45 2019 +0200 Make the list of horrible filter_gdb sed expressions somewhat less horrible The sed expressions and the comments of these expression were at 2 different places, making this already horrible list of expressions even more horrible to understand/maintain. So, restructure to allow the comments for an expression be close to the expression. Diff: --- gdbserver_tests/filter_gdb | 295 ++++++++++++++++++++++++++++----------------- 1 file changed, 186 insertions(+), 109 deletions(-) diff --git a/gdbserver_tests/filter_gdb b/gdbserver_tests/filter_gdb index fd2e8e7..204c0fc 100755 --- a/gdbserver_tests/filter_gdb +++ b/gdbserver_tests/filter_gdb @@ -2,146 +2,222 @@ # filter the output of gdb. -dir=`dirname $0` - -$dir/filter_stderr | - -# Anonymise addresses -$dir/../tests/filter_addresses | - -# memcheck stuff -$dir/filter_memcheck_monitor "$@" | - -# memcheck filter might leave some "..." lines, we are not interested -sed -e '/^\ \ \ \ \.\.\.$/d' | - -# Anonymise or remove : +PATTERNFILE=$(mktemp filter_gdb.tmp.XXXXXXXXXX) +cat > $PATTERNFILE <<EOF # delete the initial lines between the launch of vgdb and the # output of the echo command telling it is launched. # This removes a whole lot of uninteresting lines varying # with OS/glibc/gdb dep -# then have a general way to delete uninteresting and vayring -# lines. -# suppress lines telling file _exit.c does not exist +/Remote debugging using/,/vgdb launched process attached/d + +# general way to delete uninteresting and varying lines. +/filter_gdb BEGIN drop/,/filter_gdb END drop/d + # initial tty control character sent by gdb 7.0 -# remove missing debuginfos -# vgdb message -# pid numbers +s/^\[?1034hReading symbols/Reading symbols/ + +# remove message about missing debuginfos +/^Missing separate debuginfo/d + +# suppress lines telling file _exit.c does not exist +/\/_exit.c: No such file or directory/d + +# Remove some Suse package manager messages +/^Try: zypper install -C/d + +# Remove vgdb message +/relaying data between gdb and process/d + +# Anonymise pid numbers +s/pid [0-9][0-9]*/pid ..../g + # filter 'remote target killed' messages (produced by gdb >= 8.2) -# Thread numbers +/(Remote target) killed/d + +# Anonymise Thread numbers +s/Thread [0-9][0-9]*/Thread ..../g + # delete thread switches -# info threads output (e.g. which thread is running and syscall) +/\[Switching to Thread ....\]/d + +# ??? Probably we had a 'Switching ' message in front of +# a frame line ? +s/\(\[Switching to thread [1234] (Thread ....)\]\)#0/\1\n#0/ + +# Anonymise info threads output (e.g. which thread is running and syscall) +s/^\([ \* ] [0-9] Thread .... (tid [0-9] VgTs_WaitSys) 0x........ in\).*$/\1 syscall .../ + +# Newer gdb say Thread .... hit Breakpoint, we expect just Breakpoint. +s/^Thread .... hit Breakpoint /Breakpoint / + +# We expect "Program received" instead of "Thread .... received" +s/^Thread .... received /Program received / + +s/#[0-9]\( 0x........ in sleeper_or_burner\)/#.\1/ + +# Some gdb versions don't show the source line:number after switching +# threads in #0 0x........ in do_burn (). +s/\(#0 0x........ in do_burn ()\) at sleepers.c:41/\1/ + + # delete Reading symbols file lines +# Note: The 'done.' in "Reading symbols from <exe>...done." +# is optional (bugzilla 406357). +/^Reading symbols from .*\.\.\.\(done\.\)\?/d + # delete Loaded symbols file lines +/^Loaded symbols for .*$/d + # delete language switch messages. +/^Current language.*/d +/^The current source language is.*/d + +# 'exited with code' and 'exited normally' are printed slightly +# differently between gdb versions, normalize to "Program exited...". +s/^.*\( exited with code [0-9]\+\).$/Program\1\./g +s/^.*\( exited normally\).$/Program\1\./g + # remove gdb prompts. +s/(gdb) //g + # remove gdb continuation prompts. +s/^>[> ]*// + # remove gdb done prompts. -# a 'general' system calls stack trace part -# a more specialised system call select stack trace part -# (on 32 bits, we have an int_80, on 64 bits, directly select) -# and yet another (gdb 7.0 way) to get a system call -# and yet another (gdb 7.0 arm way) to get a system call -# -# Additions of 4 expressions to cover glibc 2.27 way to do a select, such as +/^done\.$/d + +# anonymise a 'general' system calls stack trace part +s/in _dl_sysinfo_int80 () from \/lib\/ld-linux.so.*/in syscall .../ + +# anonymise kill syscall. +s/in kill ().*$/in syscall .../ + +# anonymise syscall on ppc64 (bugzilla #284305) +s/in .*kill ().*$/in syscall .../ + + +s/in _dl_sysinfo_int80 ()/in syscall .../ +/^ from \/lib\/ld-linux.so.*$/d +s/\(0x........\) in ?? () from \/lib.*$/\1 in syscall .../ +s/\(0x........\) in ?? ()$/\1 in syscall .../ + +# 4 expressions to cover glibc 2.27 way to do a select, such as # * 1 Thread 5548 (tid 1 VgTs_WaitSys) 0x0000000004f6203f in __GI___select ( # nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x30a0e0 <t>) # at ../sysdeps/unix/sysv/linux/select.c:41 # If select.c sources are present, we can also get a line containing: # return SYSCALL_CANCEL.... -# -# and cleanup some lines for a system call (on ubuntu 10 64 bits) -# (pay attention : there are tab characters there in) +s/in __select .*/in syscall .../ +/exceptfds/d +/sysv\/linux\/select\.c/d +/return SYSCALL_CANCEL /d + +# a more specialised system call select stack trace part +# (on 32 bits, we have an int_80, on 64 bits, directly select) +s/in \(.__\)\{0,1\}select () from \/.*$/in syscall .../ + +/^ from \/lib\/libc.so.*$/d +/^ from \/lib64\/libc.so.*$/d +/^ from \/lib64\/.*\/libc.so.*$/d + +# and yet another (gdb 7.0 way) to get a system call +s/in select ()$/in syscall .../ + +# and yet another (gdb 7.0 arm way) to get a system call +s/in \.__select ()$/in syscall .../ + # + yet another way to get a select system call +s/in select () at \.\.\/sysdeps\/unix\/syscall-template\.S.*$/in syscall .../ + +# filter out names which starts with a "." +# such names are used for "function descriptors" on ppc64 +# bugzilla 406561 +s/in \.__select () at \.\.\/sysdeps\/unix\/syscall-template\.S.*$/in syscall .../ + +# cleanup some lines for a system call (on ubuntu 10 64 bits) +# (pay attention : there are tab characters there in) +/^[ ]*at \.\.\/sysdeps\/unix\/syscall-template\.S/d +/^[ ]*in \.\.\/sysdeps\/unix\/syscall-template\.S/d + +/^[1-9][0-9]*[ ]*\.\.\/sysdeps\/unix\/syscall-template\.S/d +/^[1-9][0-9]*[ ]in *\.\.\/sysdeps\/unix\/syscall-template\.S/d +/^[1-9][0-9]*[ ]T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)/d + # and yet another (Solaris way) to get a poll system call # (on 32 bits, we have /lib/libc.so.*, on 64 bits, /lib/64/libc.so.*) +s/in __pollsys () from \/.*$/in syscall .../ +/^ from \/lib\/64\/libc.so.*$/d + # which registers can't be modified +s/\(Could not write register \)".*"/\1 "xxx"/ +s/\(ERROR changing register \).*$/\1 xxx regno y/ + # special transform for arm/ppc watchpoints which have an additional address # at the beginning +s/0x........ in \(main (argc=1, argv=0x........) at watchpoints.c:[24][3689]\)/\1/ + +s/0x........ in \(main () at clean_after_fork.c:34\)/\1/ + # SIGFPE backtrace is varying so much that we just remove all lines # after the signal trapping using an expr in this sed, followed by another sed. +s/\(^.*signal SIGFPE.*$\)/\1\nafter trap SIGFPE/ + +# gdb might also try to show the "entry value" p=p@entry=0x... +s/p=p@entry=0x/p=0x/ + +# for hgtls the breakpoint p=... address might show var location. +s/\(^Breakpoint 1, tls_ptr (p=0x........\) <tests[0-9+]*>\() at tls.c:55\)/\1\2/ + +/Id Target Id *Frame/d +s/^\([ \*] [1234] \) *Thread /\1Thread / + +# Ordering of ' Thread .... (tid .' might differ between gdb version, +# so remove all such lines except the "current" one (starts with '*'). +s/^ [0-9] Thread .... (tid [0-9] .*$// + # transform info thread of 7.3 into the layout of 7.2 and before. +s/VgTs_WaitSys) 0x/VgTs_WaitSys) 0x/ + # delete lines telling that some memory can't be accessed: this is # a.o. produced by gdb 7.2 on arm (same with standard gdbserver) +/Cannot access memory at address 0x......../d + +# Filter 'New thread' lines +# gdb 7.9 reports new threads at different moment than the previous versions. +# Filter these new threads lines so as to not be dependent on this +# gdb aspect. +/\[New Thread/d + +# 406355 +# adjust filtering for the new gdb output +# mcsigpass and mcsignopass tests fails due to the slightly different +# gdb output. Filter the tests output to make it the same for different +# gdb version. Change mcsigpass and mcsignopass .exp to fit filtered +# .out. +s/^0x........ in \(\w\+ (\)/\1/ + # delete empty lines (the last line (only made of prompts) sometimes # finishes with a new line, sometimes not ???). -# 'exited with code' and 'exited normally' are printed slightly -# differently between gdb versions, normalize to "Program exited...". -# for hgtls the breakpoint p=... address might show var location. -# gdb might also try to show the "entry value" p=p@entry=0x... -# Some gdb versions don't show the source line:number after switching -# threads in #0 0x........ in do_burn (). -# Newer gdb say Thread .... hit Breakpoint, we expect just Breakpoint. -# We expect "Program received" instead of "Thread .... received" -# Ordering of ' Thread .... (tid .' might differ between gdb version, -# so remove all such lines except the "current" one (starts with '*'). -sed -e '/Remote debugging using/,/vgdb launched process attached/d' \ - -e '/filter_gdb BEGIN drop/,/filter_gdb END drop/d' \ - -e 's/^\[?1034hReading symbols/Reading symbols/' \ - -e '/^Missing separate debuginfo/d' \ - -e '/\/_exit.c: No such file or directory/d' \ - -e '/^Try: zypper install -C/d' \ - -e '/relaying data between gdb and process/d' \ - -e 's/pid [0-9][0-9]*/pid ..../g' \ - -e '/(Remote target) killed/d' \ - -e 's/Thread [0-9][0-9]*/Thread ..../g' \ - -e '/\[Switching to Thread ....\]/d' \ - -e 's/\(\[Switching to thread [1234] (Thread ....)\]\)#0/\1\n#0/' \ - -e 's/^\([ \* ] [0-9] Thread .... (tid [0-9] VgTs_WaitSys) 0x........ in\).*$/\1 syscall .../' \ - -e 's/^Thread .... hit Breakpoint /Breakpoint /' \ - -e 's/^Thread .... received /Program received /' \ - -e 's/#[0-9]\( 0x........ in sleeper_or_burner\)/#.\1/' \ - -e 's/\(#0 0x........ in do_burn ()\) at sleepers.c:41/\1/' \ - -e '/^Reading symbols from .*\.\.\.\(done\.\)\?/d' \ - -e '/^Loaded symbols for .*$/d' \ - -e '/^Current language.*/d' \ - -e '/^The current source language is.*/d' \ - -e 's/^.*\( exited with code [0-9]\+\).$/Program\1\./g' \ - -e 's/^.*\( exited normally\).$/Program\1\./g' \ - -e 's/(gdb) //g' \ - -e 's/^>[> ]*//' \ - -e '/^done\.$/d' \ - -e 's/in _dl_sysinfo_int80 () from \/lib\/ld-linux.so.*/in syscall .../' \ - -e 's/in kill ().*$/in syscall .../' \ - -e 's/in .*kill ().*$/in syscall .../' \ - -e 's/in _dl_sysinfo_int80 ()/in syscall .../' \ - -e '/^ from \/lib\/ld-linux.so.*$/d' \ - -e 's/\(0x........\) in ?? () from \/lib.*$/\1 in syscall .../' \ - -e 's/\(0x........\) in ?? ()$/\1 in syscall .../' \ - -e 's/in __select .*/in syscall .../' \ - -e '/exceptfds/d' \ - -e '/sysv\/linux\/select\.c/d' \ - -e '/return SYSCALL_CANCEL /d' \ - -e 's/in \(.__\)\{0,1\}select () from \/.*$/in syscall .../' \ - -e '/^ from \/lib\/libc.so.*$/d' \ - -e '/^ from \/lib64\/libc.so.*$/d' \ - -e '/^ from \/lib64\/.*\/libc.so.*$/d' \ - -e 's/in select ()$/in syscall .../' \ - -e 's/in \.__select ()$/in syscall .../' \ - -e 's/in select () at \.\.\/sysdeps\/unix\/syscall-template\.S.*$/in syscall .../' \ - -e 's/in \.__select () at \.\.\/sysdeps\/unix\/syscall-template\.S.*$/in syscall .../' \ - -e '/^[ ]*at \.\.\/sysdeps\/unix\/syscall-template\.S/d' \ - -e '/^[ ]*in \.\.\/sysdeps\/unix\/syscall-template\.S/d' \ - -e '/^[1-9][0-9]*[ ]*\.\.\/sysdeps\/unix\/syscall-template\.S/d' \ - -e '/^[1-9][0-9]*[ ]in *\.\.\/sysdeps\/unix\/syscall-template\.S/d' \ - -e '/^[1-9][0-9]*[ ]T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)/d' \ - -e 's/in __pollsys () from \/.*$/in syscall .../' \ - -e '/^ from \/lib\/64\/libc.so.*$/d' \ - -e 's/\(Could not write register \)".*"/\1 "xxx"/' \ - -e 's/\(ERROR changing register \).*$/\1 xxx regno y/' \ - -e 's/0x........ in \(main (argc=1, argv=0x........) at watchpoints.c:[24][3689]\)/\1/' \ - -e 's/0x........ in \(main () at clean_after_fork.c:34\)/\1/' \ - -e 's/\(^.*signal SIGFPE.*$\)/\1\nafter trap SIGFPE/' \ - -e 's/p=p@entry=0x/p=0x/' \ - -e 's/\(^Breakpoint 1, tls_ptr (p=0x........\) <tests[0-9+]*>\() at tls.c:55\)/\1\2/' \ - -e '/Id Target Id *Frame/d' \ - -e 's/^\([ \*] [1234] \) *Thread /\1Thread /' \ - -e 's/^ [0-9] Thread .... (tid [0-9] .*$//' \ - -e 's/VgTs_WaitSys) 0x/VgTs_WaitSys) 0x/' \ - -e '/Cannot access memory at address 0x......../d' \ - -e '/\[New Thread/d' \ - -e 's/^0x........ in \(\w\+ (\)/\1/' \ - -e '/^$/d' | +/^$/d + + +EOF + +dir=`dirname $0` + +$dir/filter_stderr | + +# Anonymise addresses +$dir/../tests/filter_addresses | + +# memcheck stuff +$dir/filter_memcheck_monitor "$@" | + +# memcheck filter might leave some "..." lines, we are not interested +sed -e '/^\ \ \ \ \.\.\.$/d' | + +# Anonymise or remove, using the big list of PATTERN prepared above +sed -f $PATTERNFILE | # remove all the lines telling where the SIGFPE was trapped. sed -e '/after trap SIGFPE/,/after continue SIGFPE/d' | @@ -150,3 +226,4 @@ sed -e '/after trap SIGFPE/,/after continue SIGFPE/d' # (in a separate sed, as the below influences the behaviour of the other expressions) sed -e :a -e '$!N;s/\n at sleepers.c:39/ at sleepers.c:39/;ta' -e 'P;D' +rm $PATTERNFILE |