filter_stderr_basic revision 8f943afc22a6a683b78271836c8ddc462b4824a9
1885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#! /bin/sh
2885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
3885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# This filter should be applied to *every* stderr result.  It removes
4885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Valgrind startup stuff and pid numbers.
5885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#
6885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Nb: The GNU and BSD implementations of 'sed' are quite different, so
7885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# anything remotely complicated (e.g. "\(a\|b\)" alternatives) can't be
8885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# easily done.  Use Perl instead for any such cases.
9885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
10885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgdir=`dirname $0`
11e3ea049fcaee2247e45f0ce793d4313babb4ef69tlegrand@chromium.org
12885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove ==pid== and --pid-- and **pid** strings 
13885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgperl -p -e 's/(==|--|\*\*)[0-9]{1,7}\1 //' |
14885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
15e3ea049fcaee2247e45f0ce793d4313babb4ef69tlegrand@chromium.org# Remove any --pid:0: strings (debuglog level zero output)
16885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "/^--[0-9]\{1,7\}:0:*/d" |
17885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
18885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove "Command: line".  (If wrapping occurs, it won't remove the
19885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# subsequent lines...)
20885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "/^Command: .*$/d" |
21885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
22885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove "WARNING: assuming toc 0x.." strings
23885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "/^WARNING: assuming toc 0x*/d" |
24885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
25885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove "Using Valgrind-$VERSION and LibVEX..." line.
26885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Tools have to filter their own line themselves.
27885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "/^Using Valgrind-.* and LibVEX; rerun with -h for copyright info/ d" |
28885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
29885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Anonymise line numbers in vg_replace_malloc.c, remove dirname if present
30885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgperl -p -e "s/(m_replacemalloc\/)?vg_replace_malloc.c:\d+\)/vg_replace_malloc.c:...\)/" |
31885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
32885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Likewise for valgrind.h
33885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgperl -p -e "s/valgrind\.h:\d+\)/valgrind\.h:...\)/" |
34885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
35885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Hide suppressed error counts
36885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "s/^\(ERROR SUMMARY[^(]*(suppressed: \)[0-9]*\( from \)[0-9]*)$/\10\20)/" |
37885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
38e3ea049fcaee2247e45f0ce793d4313babb4ef69tlegrand@chromium.org# Reduce some libc incompatibility
39885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org$dir/filter_libc |
40885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
41885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove line info out of order warnings
42885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "/warning: line info addresses out of order/d" |
43885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
44885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Older bash versions print abnormal termination messages on the stderr
45885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# of the bash process. Newer bash versions redirect such messages properly.
46885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Suppress any redirected abnormal termination messages. You can find the
47885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# complete list of messages in the bash source file siglist.c.
48885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgperl -n -e 'print if !/^(Segmentation fault|Alarm clock|Aborted|Bus error)( \(core dumped\))?$/' |
49885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
50885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove any ": dumping core" message as the user might have a
513c3902f0ac13428394f14f78f0fab05ef3468d69tlegrand@google.com# limit set that prevents the core dump
523c3902f0ac13428394f14f78f0fab05ef3468d69tlegrand@google.comsed "s/\(signal [0-9]* (SIG[A-Z]*)\): dumping core/\1/" |
53885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
54885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Remove the size in "The main thread stack size..." message.
55885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed "s/The main thread stack size used in this run was [0-9]*/The main thread stack size used in this run was .../" |
56885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
57885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Suppress warnings from incompatible debug info
58885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed '/warning: the debug information found in "[^"]*" does not match/d' |
59885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
60885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org# Suppress warnings from Dwarf reader
61885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgsed '/warning: evaluate_Dwarf3_Expr: unhandled DW_OP_/d'
62885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org