[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 191992] New: multiple --fn-skip only works sometimes; dependent
From: Sami Liedes <sliedes () cc ! hut ! fi>
Date: 2009-05-08 3:15:21
Message-ID: bug-191992-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=191992
Summary: multiple --fn-skip only works sometimes; dependent on
order
Product: valgrind
Version: 3.4.1
Platform: Debian unstable
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: callgrind
AssignedTo: josef.weidendorfer@gmx.de
ReportedBy: sliedes@cc.hut.fi
Hi,
I'm running callgrind as follows:
valgrind --fn-skip=gomp_thread_start --fn-skip='g_*' --fn-skip=gtk_main
--fn-skip='wx*' --fn-skip="start_thread" --tool=callgrind --dump-instr=yes
--collect-jumps=yes --separate-threads=yes ~/rec/audacity-1.3.7/audacity
testi.wav
and it correctly skips the function gomp_thread_start.
However if I move the --fn-skip=gomp_thread_start parameter after the
start_thread skip:
valgrind --fn-skip='g_*' --fn-skip=gtk_main --fn-skip='wx*'
--fn-skip="start_thread" --fn-skip=gomp_thread_start --tool=callgrind
--dump-instr=yes --collect-jumps=yes --separate-threads=yes
~/rec/audacity-1.3.7/audacity testi.wav
gomp_thread_start is no longer skipped (i.e. occurs in the callgrind.out* files
and in kcachegrind).
Moreover both of these skip all functions whose names start with g_. However if
I move that parameter after the gomp_thread_start skip:
valgrind --fn-skip=gtk_main --fn-skip='wx*' --fn-skip="start_thread"
--fn-skip=gomp_thread_start --fn-skip='g_*' --tool=callgrind --dump-instr=yes
--collect-jumps=yes --separate-threads=yes ~/rec/audacity-1.3.7/audacity
testi.wav
Now the gomp_thread_start function is skipped as it should, however none the
functions starting with g_ is skipped.
I couldn't find anything fishy in debug output, but perhaps I didn't know where
to look.
Here are the first 100 lines of debug output from the above command with
--ct-verbose=4. Please tell if you need something else.
--------------------------------------------------
$ valgrind --ct-verbose=4 --tool=callgrind --fn-skip=gtk_main --fn-skip='wx*'
--fn-skip="start_thread" --fn-skip=gomp_thread_start --fn-skip='g_*'
--dump-instr=yes --collect-jumps=yes --separate-threads=yes
~/rec/audacity-1.3.7/audacity testi.wav 2>&1 |head -n 100
+get_fnc(gtk_main)
new_config('', len 0)
get_fnc2(0x4020011E8, 'gtk_main')
new_config('gtk_main', len 8)
-get_fnc(gtk_main):
'gtk_main'/8
+get_fnc(wx*)
get_fnc2(0x4020011E8, 'wx*')
new_config('wx', len 2)
get_fnc2(0x402001600, '*')
new_config('*', len 1)
get_fnc2(0x402001748, '')
-get_fnc(wx*):
'gtk_main'/8
'wx'/2
'*'/1
+get_fnc(start_thread)
get_fnc2(0x4020011E8, 'start_thread')
new_config('start_thread', len 12)
-get_fnc(start_thread):
'gtk_main'/8
'start_thread'/12
'wx'/2
'*'/1
+get_fnc(gomp_thread_start)
get_fnc2(0x4020011E8, 'gomp_thread_start')
new_config('g', len 1)
new_config('omp_thread_start', len 16)
-get_fnc(gomp_thread_start):
'g'/1
'omp_thread_start'/16
'tk_main'/7
'start_thread'/12
'wx'/2
'*'/1
+get_fnc(g_*)
get_fnc2(0x4020011E8, 'g_*')
new_config('_', len 1)
get_fnc2(0x402001D08, '*')
new_config('*', len 1)
get_fnc2(0x402001E50, '')
-get_fnc(g_*):
'g'/1
'_'/1
'*'/1
'omp_thread_start'/16
'tk_main'/7
'start_thread'/12
'wx'/2
'*'/1
==5176== Callgrind, a call-graph generating cache profiler.
==5176== Copyright (C) 2002-2008, and GNU GPL'd, by Josef Weidendorfer et al.
==5176== Using LibVEX rev 1884, a library for dynamic binary translation.
==5176== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==5176== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation
framework.
==5176== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==5176== For more details, rerun with: -v
==5176==
dump threads: Yes
call sep. : 0
rec. sep. : 2
Setup for interactive control (PID: 5176):
output file: '/home/sliedes/snd/callgrind.out.5176'
command file: '/home/sliedes/snd/callgrind.cmd.5176'
result file: '/home/sliedes/snd/callgrind.res.5176'
info file: '/tmp/callgrind.info.5176'
EventSets:
Use (Size/Cap 0/4): -
Ir (Size/Cap 1/4): Ir
Dr (Size/Cap 0/4): -
Dw (Size/Cap 0/4): -
sim (Size/Cap 1/1): Ir
full (Size/Cap 1/1): Ir
>> thread 1 (was 0)
exec_state_restore(sig 0): collect Yes, jmps_passed 0
BBCC 0x0
(no context)
Cost full [0x4020025F0]: Ir 0
==5176== For interactive control, run 'callgrind_control -h'.
+ instrument(BB 0x4000a90)
check_code: /lib/ld-2.9.so, pattern amd64-def, check 62 bytes of [48 83 ec...]
found chunk 0 at 0x126a0, checking 44 bytes of [49 89 c3...]
found at offset 0x126a0.
new_bb (instr 2, jmps 0, inv no) [now 1]: BB 0x4000a90 (Obj '/lib/ld-2.9.so')
+ get_fn_node(BB 0x4000a90)
new_cxt ox0x40210A5F8: Cxt 0: 0x0000000000000a90
update_fn_config('0x0000000000000a90')
update_fn_config2('0x0000000000000a90', node ''):
- get_fn_node(BB 0x4000a90): 0x0000000000000a90 (in ???:0)
- instrument(BB 0x4000a90): byteLen 8, CJumps 0, CostLen 0
+ setup_bbcc(BB 0x4000a90)
None 00000000 -> 04000a90, SP 7ff000610
+ get_bbcc(BB 0x4000a90)
new_bbcc(BB 0x4000a90): 0x40210A638 (now 1)
ld-2.9.so +0xa90=0x4000a90, (no context)
- get_bbcc(BB 0x4000a90): BBCC 0x40210A638
new_recursion(size 2): 0x40210A6D0
+ insert_bbcc_into_hash(BB 0x4000a90, fn '0x0000000000000a90')
- insert_bbcc_into_hash: 1 entries
04000a90/T 0:0x0000000000000a90 ld-2.9.so
--------------------------------------------------
--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic