Using the Solaris process tools on a specific thread

In Solaris 10 the ptools (process tools) were enhanced to display data for specific threads in a process. This functionality can be tapped into by appending a slash and a thread id to the ptool command line:

$ pstack 739/2

739:    java TestApp
-----------------  lwp# 2 / thread# 2  --------------------
 feeb3025 lwp_cond_wait (806eeb8, 806eea0, 0, 0)
 feac58c1 __1cHMonitorEwait6Mbl_b_ (806ee48, 0, 0) + 2c1
 feb28310 __1cHThreadsKdestroy_vm6F_b_ (0, 0, 806a79c, 0, 10006, febb59c9) + 7c
 fe8e2de2 jni_DestroyJavaVM (fec46dc0) + 12a
 0805324c JavaMain (8047cb8) + fec
 feeae662 _thr_setup (fe650200) + 52
 feeae8c0 _lwp_start (fe650200, 0, 0, 0, 0, 0)

This is extremely useful when you need to interrogate a specific thread in a process (e.g., a thread that is consuming 100% of a CPU), or when a process has 100s or 1000s of threads (which is typically the case with Java applications). Nice!

1 thought on “Using the Solaris process tools on a specific thread”

  1. Hi, my name is Tim. Just wanted to say hi to the forum, I been creeping around here for a while now, but tend to participate more. Looking forward to make some new friends. Ciao!

    Tim

    NY, NY

Leave a Reply

Your email address will not be published. Required fields are marked *