Patent ID: 7735066

Claim:
A computer software tool stored in memory which, when executed, performs steps comprising: executing a subject program; recording a first statement responsible for a first variable changing, wherein recording the first statement is performed during execution of the subject program; recording a second variable used by a second statement that executed, wherein recording the second variable is performed during execution of the subject program; recording a third statement that caused the second statement to execute, wherein recording the third statement is performed during the execution of the subject program; pausing the execution of the subject program after executing the subject program, after recording the first statement, after recording the second variable, and after recording the third statement, wherein pausing the execution of the subject program is caused by a user intentionally pausing the execution of the subject program and wherein pausing is caused without breakpoints; prompting the user to select information related to the subject program after executing the subject program, after recording the first statement, after recording the second variable, after recording the third statement, and after pausing the execution of the subject program; and providing an answer in response to the user selecting information related to the subject program, wherein the answer includes at least one of: statements, variables, and prepared statements related to the information selected by the user, and wherein providing an answer includes: determining whether a statement of a subject computer program failed to execute because it is not possible for the statement to execute; providing an answer indicating why it is not possible for the statement to execute when it is determined that the statement failed because it is not possible for the statement to execute; determining whether a statement did execute; providing an answer indicating why the statement did execute when it is determined that the statement did execute; determining whether a statement can execute but did not execute; providing an answer indicating why the statement can execute but did not execute when it is determined that the statement can execute but did not execute.