LIZARD IZ A Replay Debugger


  • Reverse analogues of GDB commands:

    Lizard provides the commands bs and prev, the backward analogues of GDB's step and next respectively.

    Also provided are jump_forward and jump_backward, which allow you to quickly go to any point in the execution of the program.

  • Activation Tree:

    An execution of a function body is called an activation.

    Once the program executes, we can draw a tree, called an activation tree, that depicts the sequence and hierarchy of function calls made during the entire program execution.

    In this tree, the root is the activation of main(), the functions called by main are its children in the tree. Time is represented along the vertical axis. For example, here's the activation tree for a Towers of Hanoi program execution with 3 rings.

    Besides being a great help in debugging recursive programs, this visualisation is also helpful in understanding programs that were written by someone else.

    Activation tree for Towers of Hanoi

  • Reverse Watchpoints:

    GDB's watchpoint feature allows you to stop at any point where a user-specified expression changes.

    Lizard gives you the backward analogue of this: go to the last place in the execution when the value of a given expression was changed.

  • Existing GDB features:

    Lizard is an extension to GDB and Insight. Therefore, existing GDB and Insight features work with Lizard as well.

Project hosted by Logo