Demonstrations of uthreads.


uthreads traces thread creation events in Java or raw pthreads, and prints
details about the newly created thread. For Java threads, the thread name is
printed; for pthreads, the thread's start function is printed, if there is
symbol information to resolve it.

For example, trace all Java thread creation events:

# ./uthreads -l java 27420
Tracing thread events in process 27420 (language: java)... Ctrl-C to quit.
TIME     ID               TYPE     DESCRIPTION                   
18.596   R=9/N=0          start    SIGINT handler                
18.596   R=4/N=0          stop     Signal Dispatcher             
^C

The ID column in the preceding output shows the thread's runtime ID and native
ID, when available. The accuracy of this information depends on the Java 
runtime.


Next, trace only pthread creation events in some native application:

# ./uthreads 27450
Tracing thread events in process 27450 (language: none)... Ctrl-C to quit.
TIME     ID               TYPE     DESCRIPTION                   
0.924    27462            pthread  primes_thread [primes]
0.927    27463            pthread  primes_thread [primes]     
0.928    27464            pthread  primes_thread [primes]        
0.928    27465            pthread  primes_thread [primes]        
^C

The thread name ("primes_thread" in this example) is resolved from debuginfo.
If symbol information is not present, the thread's start address is printed
instead.


USAGE message:

# ./uthreads -h
usage: uthreads.py [-h] [-l {java,none}] [-v] pid

Trace thread creation/destruction events in high-level languages.

positional arguments:
  pid                   process id to attach to

optional arguments:
  -h, --help            show this help message and exit
  -l {java,none}, --language {java,none}
                        language to trace (none for pthreads only)
  -v, --verbose         verbose mode: print the BPF program (for debugging
                        purposes)

examples:
    ./uthreads -l java 185   # trace Java threads in process 185
    ./uthreads 12245         # trace only pthreads in process 12245
