[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