# Go Delve¶

Delve is a debugger for the Go programming language. Undo have extended Delve to provide support for the UndoDB reversible debugger.

Undo are working with the upstream Delve community to incorporate support in the official release versions of the tool, and to extend the reverse debugging functionality. While that continues we have made available a version of Delve that supports UndoDB. This can be obtained using:
go get -u github.com/undoio/delve/cmd/dlv

## Using UndoDB within Delve¶

Most Delve commands require explicit selection of the UndoDB backend with the --backend=undo option. The exception to this is dlv replay which will automatically detect the recording file format.

Within Delve there are a number of additional commands associated with reverse debugging:

• rewind (alias rw) will run backwards until a breakpoint is hit or the start of the program.
• checkpoint (alias check) allows setting of a checkpoint at the current position.
• checkpoints will show the currently defined checkpoints.
• clear-checkpoint <cp> (alias clearcheck) deletes the checkpoint <cp>.
• restart <cp> (alias r) moves execution to checkpoint <cp>.
• rev step-instruction (alias rev si) single steps back a single CPU instruction.