1. Introduction¶
Welcome to the Calypsi debugger, a powerful tool which allows you to see what happens inside programs while it executes. Calypsi debugger provides both interactive as well as script based control.
The design of the debugger is based on ideas coming from command line debuggers like GDB (GNU project debugger) and LLDB (LLVM project debugger). If you are familiar with these you will find lots of similarities.
1.1. Command line debugger¶
A command line debugger provides powerful commands that are easy to
remember and understand. You can use descriptive commands like
step, break and continue rather than a set of bindings to
function keys and other more or less cryptic key bindings. Thanks to
short forms and repeat the last command when entering no command, you
can do the many common actions with a single or two key strokes.
The Calypsi debugger can also be used with many debugger front ends, such as Visual Studio Code, Eclipse and Emacs. This is possible thanks to the MI (Machine Interface) protocol designed by the GNU project which allows for very precise control.
The Calypsi debugger also provides powerful scripting abilities via the Lua language. You can use Lua to configure debugging sessions, create your own commands and even make your own debugger plug-ins. This is made possible by that the complete debugger functional API is provided to Lua. The debugger Lua API even goes further and provides additional concepts, such as making it possible to define new console commands and subscribe to internal debugger events.
In other words, with the Calypsi debugger you get the best from both the command line world and integrated graphical development environments.