Sun Studio 12 Update 1: Debugging a Program With dbx

Thread Information

The following thread information is available in dbx:


(dbx) threads
    t@1 a l@1  ?()  running   in main()
    t@2      ?() asleep on 0xef751450  in_swtch()
    t@3 b l@2  ?()  running in sigwait()
    t@4     consumer()  asleep on 0x22bb0 in _lwp_sema_wait()
  *>t@5 b l@4 consumer()  breakpoint     in Queue_dequeue()
    t@6 b l@5 producer()     running       in _thread_start()
(dbx)

For native code, each line of information is composed of the following:

For Java code, each line of information is composed of the following:

Table 11–1 Thread and LWP States

Thread and LWP States  

Description  

suspended 

The thread has been explicitly suspended. 

runnable 

The thread is runnable and is waiting for an LWP as a computational resource. 

zombie 

When a detached thread exits (thr_exit)), it is in a zombie state until it has rejoined through the use of thr_join(). THR_DETACHED is a flag specified at thread creation time (thr_create()). A non-detached thread that exits is in a zombie state until it has been reaped.

asleep on syncobj

Thread is blocked on the given synchronization object. Depending on what level of support libthread and libthread_db provide, syncobj might be as simple as a hexadecimal address or something with more information content.

active 

The thread is active on an LWP, but dbx cannot access the LWP.

unknown 

dbx cannot determine the state.

lwpstate

A bound or active thread state has the state of the LWP associated with it. 

running 

LWP was running but was stopped in synchrony with some other LWP. 

syscall num

LWP stopped on an entry into the given system call #. 

syscall return num

LWP stopped on an exit from the given system call #. 

job control 

LWP stopped due to job control. 

LWP suspended 

LWP is blocked in the kernel. 

single stepped 

LWP has just completed a single step. 

breakpoint 

LWP has just hit a breakpoint. 

fault num

LWP has incurred the given fault #. 

signal name

LWP has incurred the given signal. 

process sync 

The process to which this LWP belongs has just started executing. 

LWP death 

LWP is in the process of exiting.