1. A method in a data processing system for autonomically determining execution flow of a computer program, comprising: setting a thread tracking control bit in a processor of the data processing system to enable thread tracking by the processor; providing a set of hardware registers for identifying a work area for a thread of the computer program, wherein the work area stores thread tracking information for the thread, and wherein the set of hardware registers includes a current pointer register and a work area length register, and wherein the current pointer register includes a pointer pointing to a location of the work area where last thread tracking information is written; detecting, by the processor, a particular type of operation responsive to setting the control bit; responsive to detecting, and before executing, the particular type of operation: determining, by a trace application, whether an overflow is about to occur in the work area using the current pointer register, the work area length register, and a total amount of data in the operation; responsive to the trace application determining that an overflow is about to occur in the work area, sending an interrupt to an operating system to cause the operating system to copy the thread tracking information from the work area to a buffer using the set of hardware registers; retrieving, by the trace application, symbolic data for the thread, wherein retrieving symbolic data for the thread includes retrieving symbolic data from an indexed symbolic database by searching the indexed symbolic database for symbolic data based on a process identifier for the thread; and generating a call sequence of the computer program based on the symbolic data for the thread.