Abstract:
A system and method are provided for enhanced navigation along execution time and code space in a debugger to assist a user in remediating errors, streamlining, or reverse engineering a computer program and the source code thereof. Snapshots of system states are recorded, a causality tree of commands is constructed through execution of the program to be debugged, and an intelligent display of system states captured during runtime and indexed or cross-referenced by time are displayed to the user in an intelligent manner to aid the user with certain debugging tasks. Additionally, further features in assisting the user to locate a root cause of an error or unexpected value and remediate that cause are also provided.
Abstract:
A method for automated debugging of a design under test (DUT), including using a processor, (a) identifying a value of a signal at a specific time instance in which a user has indicated interest; (b) performing driver tracing based on structural analysis and signal analysis to determine one or a plurality of drivers of the identified value in the signal; (c) if the driver tracing returns a single driver of said one or a plurality of drivers, presenting the returned single driver to the user via an output device; and (d) if the driver tracing returns a plurality of drivers of said one or a plurality of drivers, performing formal analysis on a compiled sub-structure of the DUT to which all of said returned plurality of drivers are related to determine a single driver from said returned plurality of drivers, and presenting the determined single driver from said returned plurality of drivers to the user via the output device.
Abstract:
A system and method of debugging a program may include obtaining a selection of a portion of the program which is between trackable inputs and outputs. The method may also include simulating an execution on the portion of the program, by providing input data via the inputs that was input through said inputs during a recorded execution of the program. The method may further include presenting information relating to the simulated execution on an output device.
Abstract:
A computer implemented method for debugging of a program may include parsing a code segment of the program, the code segment invoking one or a plurality of execution events during an execution of the program to derive a plurality of questions, each relating to an execution event of said one or a plurality of execution events, based on the parsing of the code segment and on information recorded during the execution of the program. The method may also include selecting one of the questions as a current question. The method may further include presenting in a user interface the current question with one or a plurality of causes related to the current question, and one or a plurality of other questions of said one or a plurality of questions for selection by the user.
Abstract:
A method for assertion debugging may include identifying in signals relating to an execution run of a code a segment of time for which an assertion has failed. The method may also include searching in the signals relating to that execution run, or in signals relating to another execution run of that code, to find one or a plurality of segments of time in which the signals are similar to the signals in the identified segment, for which the assertion was successful.
Abstract:
A computer implemented method of debugging with enriched message log capability may include, for each instance during an execution of a program to be debugged in which a message is issued, automatically analyzing the program code included in a scope of the program relating to the message to identify one or a plurality of variables. The method may also include saving on a non-transitory computer readable storage medium a value at that instance of each of said one or a plurality of variables. The method may further include causing a message log that includes the message to be presented on a display device, associating the value of each said one or a plurality of variables with the message.