Features
- Reverse analogues of GDB commands:
Lizard provides the commands
bs
andprev
, the backward analogues of GDB'sstep
andnext
respectively.Also provided are
jump_forward
andjump_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.
-
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.