Home | History | Annotate | Download | only in tools
      1 Demonstrations of uthreads.
      2 
      3 
      4 uthreads traces thread creation events in Java or raw (C) pthreads, and prints
      5 details about the newly created thread. For Java threads, the thread name is
      6 printed; for pthreads, the thread's start function is printed, if there is
      7 symbol information to resolve it.
      8 
      9 For example, trace all Java thread creation events:
     10 
     11 # ./uthreads -l java 27420
     12 Tracing thread events in process 27420 (language: java)... Ctrl-C to quit.
     13 TIME     ID               TYPE     DESCRIPTION                   
     14 18.596   R=9/N=0          start    SIGINT handler                
     15 18.596   R=4/N=0          stop     Signal Dispatcher             
     16 ^C
     17 
     18 The ID column in the preceding output shows the thread's runtime ID and native
     19 ID, when available. The accuracy of this information depends on the Java 
     20 runtime.
     21 
     22 
     23 Next, trace only pthread creation events in some native application:
     24 
     25 # ./uthreads 27450
     26 Tracing thread events in process 27450 (language: c)... Ctrl-C to quit.
     27 TIME     ID               TYPE     DESCRIPTION                   
     28 0.924    27462            pthread  primes_thread [primes]
     29 0.927    27463            pthread  primes_thread [primes]     
     30 0.928    27464            pthread  primes_thread [primes]        
     31 0.928    27465            pthread  primes_thread [primes]        
     32 ^C
     33 
     34 The thread name ("primes_thread" in this example) is resolved from debuginfo.
     35 If symbol information is not present, the thread's start address is printed
     36 instead.
     37 
     38 
     39 USAGE message:
     40 
     41 # ./uthreads -h
     42 usage: uthreads.py [-h] [-l {c,java,none}] [-v] pid
     43 
     44 Trace thread creation/destruction events in high-level languages.
     45 
     46 positional arguments:
     47   pid                   process id to attach to
     48 
     49 optional arguments:
     50   -h, --help            show this help message and exit
     51   -l {c,java,none}, --language {c,java,none}
     52                         language to trace (none for pthreads only)
     53   -v, --verbose         verbose mode: print the BPF program (for debugging
     54                         purposes)
     55 
     56 examples:
     57     ./uthreads -l java 185    # trace Java threads in process 185
     58     ./uthreads -l none 12245  # trace only pthreads in process 12245
     59