Tracing

From ITRS
Jump to: navigation, search

Linux

Posix Threads

  • nptltracetool: intrumentation based. Requires patching Glibc.
    • TODO: Convert to using SDT probes
(gdb) info probes
Provider   Name                     Where              Semaphore Object                        
libpthread cond_broadcast           0x0000003d8420c460           /usr/lib64/libpthread-2.18.so 
libpthread cond_destroy             0x0000003d8420bb24           /usr/lib64/libpthread-2.18.so 
libpthread cond_init                0x0000003d8420bac9           /usr/lib64/libpthread-2.18.so 
libpthread cond_signal              0x0000003d8420c380           /usr/lib64/libpthread-2.18.so 
libpthread cond_timedwait           0x0000003d8420bfac           /usr/lib64/libpthread-2.18.so 
libpthread cond_wait                0x0000003d8420bc65           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d84206260           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d842069c3           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d842069f5           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d84206eab           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d842071ba           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d842078f0           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d84207950           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d84208117           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d84208cc1           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d8420bb96           /usr/lib64/libpthread-2.18.so 
libpthread lll_futex_wake           0x0000003d84210734           /usr/lib64/libpthread-2.18.so 
libpthread lll_lock_wait            0x0000003d8420e595           /usr/lib64/libpthread-2.18.so 
libpthread lll_lock_wait_private    0x0000003d8420e564           /usr/lib64/libpthread-2.18.so 
libpthread mutex_acquired           0x0000003d84205eb1           /usr/lib64/libpthread-2.18.so 
libpthread mutex_acquired           0x0000003d8420676d           /usr/lib64/libpthread-2.18.so 
libpthread mutex_acquired           0x0000003d8420a059           /usr/lib64/libpthread-2.18.so 
libpthread mutex_acquired           0x0000003d8421143d           /usr/lib64/libpthread-2.18.so 
libpthread mutex_destroy            0x0000003d84209fb0           /usr/lib64/libpthread-2.18.so 
libpthread mutex_entry              0x0000003d84209fed           /usr/lib64/libpthread-2.18.so 
libpthread mutex_entry              0x0000003d8421140d           /usr/lib64/libpthread-2.18.so 
libpthread mutex_init               0x0000003d84209f77           /usr/lib64/libpthread-2.18.so 
libpthread mutex_release            0x0000003d8420626f           /usr/lib64/libpthread-2.18.so 
libpthread mutex_release            0x0000003d8420627e           /usr/lib64/libpthread-2.18.so 
libpthread mutex_release            0x0000003d8420b146           /usr/lib64/libpthread-2.18.so 
libpthread mutex_release            0x0000003d8420b200           /usr/lib64/libpthread-2.18.so 
libpthread mutex_timedlock_acquired 0x0000003d8420aae0           /usr/lib64/libpthread-2.18.so 
libpthread mutex_timedlock_acquired 0x0000003d8420aeb7           /usr/lib64/libpthread-2.18.so 
libpthread mutex_timedlock_acquired 0x0000003d8420afe7           /usr/lib64/libpthread-2.18.so 
libpthread mutex_timedlock_entry    0x0000003d8420a7f4           /usr/lib64/libpthread-2.18.so 
libpthread pthread_create           0x0000003d842085e7           /usr/lib64/libpthread-2.18.so 
libpthread pthread_join             0x0000003d8420922d           /usr/lib64/libpthread-2.18.so 
libpthread pthread_join_ret         0x0000003d842092d3           /usr/lib64/libpthread-2.18.so 
libpthread pthread_start            0x0000003d84207f21           /usr/lib64/libpthread-2.18.so 
libpthread rdlock_entry             0x0000003d8420b430           /usr/lib64/libpthread-2.18.so 
libpthread rwlock_destroy           0x0000003d8420b420           /usr/lib64/libpthread-2.18.so 
libpthread wrlock_entry             0x0000003d8420b650           /usr/lib64/libpthread-2.18.so 
  • Missing SDT probes: pthread_{once,timedjoin_np,tryjoin_np}, pthread_{barrier,rwlock}_*, sem_*
    • Spin locks: can SDT probes on pthread_spin_* have acceptable performance impact?
    • Thread termination: tracing from level lower than pthread_exit seems preferable. How does GDB and libthread_db do it?
    • Thread async cancellation: pthread_{cancel,setcancelstate,setcanceltype,testcancel}, trace?

Branch Tracing

See Also

Comments

blog comments powered by Disqus