Methods, systems, and articles of manufacture consistent with the present
invention time profile program threads using data corresponding to states of the
registers of a processor(s) executing the threads. Methods, systems, and articles
of manufacture consistent with the present invention determine whether a selected
thread of execution of a multi-threaded program is running by suspending execution
of the multi-threaded program, retrieving register data corresponding to the selected
thread, computing register information based on the register data, comparing the
computed register information with stored register information from a previous
suspension of the multi-threaded program, and regarding the selected thread as
running if the computed register information is different from stored register
information. The last operation of regarding the selected thread as running may
involve updating the previous register information based on the computed register
information, and/or providing an indication corresponding to a portion of the program
containing the selected thread.