1. A method of tracing a program, comprising: providing a relational database data structure defining a plurality of fields configured to store program trace information, wherein the plurality of fields of the relational database data structure comprises an activity ID and a set of information related to the activity ID including a function ID, a start time, a continuation time, a first child function activity ID, a first sibling function activity ID, a next activity ID, and a parent function activity ID; executing a program comprising a plurality of functions including calling a function from the program; extracting first trace data of the function and storing the first trace data in a portion of the plurality of fields; after executing the program, extracting second trace data associated with the first trace data and storing the second trace data in remaining portions of the plurality of fields; designating the called function in the activity ID; and outputting start, end, and continuation times associated with the activity ID and start, end and continuation times of a child function that the function indicated by the activity ID calls.