As well as the main executable, penguinTrace also provides some other helper
programs for testing. Passing
-h/--help to the programs will show usage and
This is the main executable of penguinTrace. It starts the webserver and handles creating, running and controlling debugging sessions.
This parses the debugging information in a binary and prints it to stdout.
This compiles a binary in the same way as code in the web interface. This produces a binary that can be uploaded in the web interface by including source code information. The language to use is determined by the extension of the input file.
This runs a binary on the command line, stepping each instruction. By default
it will continue stepping automatically until the end of the program. If the
AUTO_STEP option is set to false, it will only advance after pressing Enter.
This is similar to
step-elf but continues until hitting a breakpoint. This
can be useful to ‘skip’ to a particular point in a program. A breakpoint can
be added with an
int3 instruction in an assembly program, or using inline
assembly in a C/C++ program:
In AArch64, a breakpoint is provided by the
bkpt instruction in place of
run-elfdoesn’t have any functionality to convert the breakpoint into a
nopand continue execution.
This generates session IDs in the same way as the user interface. It is called with a single integer argument which is the number of IDs to generate.