CodeTracer
lastmod 2025-03-08created 2025-03-081 edits
CodeTracer is a user-friendly time-traveling debugger designed to support a wide range of programming languages.
A time-traveling debugger developed in Nim and Rust
Features
- An easy-to-use time-travel debugger supporting many programming languages
- Records program execution to produce a shareable, self-contained trace file; in a GUI you can move forward and backward through the execution and view the history of every memory location
- Hard-to-reproduce bugs become easy to fix: with a recording of the execution in which the bug occurred, the cause can be found within 30 minutes
- Knowing where a value came from makes bugs easier to fix
- When the program produces unexpected output, click that event to see immediately where the problem occurred
- CodeTracer tracks where the value was created, helping you find the root cause of a bug in just a few jumps
- Freely move forward and backward to explore any moment of the program's execution
- Planned debugging support for systems programming languages such as C/C++, Rust, Nim, D, Zig, Go, Fortran, and FreePascal through integration with the RR backend
Key features of CodeTracer
Omniscient debugging (Omniscience)
- Instantly see past and future variable values at a given line of code during execution
- Easily explore how variable values change within loops
- Executed and non-executed code are clearly distinguished
Tracepoints
- Instantly see changes in variable values within the program without running additional code
- Debug by easily adding conditionals, function calls, data output, and more
Call Trace
- Provides not just a stack trace but a function call tree for the entire program execution
- Easy to navigate through filtering and sorting
State and History Explorer
- Tracks the value change history of every variable
- Jump instantly to the point in the code where a variable's value changed
- Automatically tracks the original value of copied variables, making bug analysis easier
Event Log
- Presents important events in the program in chronological order
- Click an event to jump instantly to the code at that moment
Terminal Output
- Reproduces stdout and stderr output like a terminal so you can view the recorded program output
- Click to jump to the exact code location where the output was produced
Mouse Stepping
- Jump instantly to a specific part of the code with the mouse
- Move to a line: middle-click (Ctrl+click also works)
- Step into a function: double-click a function call to move inside it (Ctrl+Alt+click also works)
- More options: explore additional features in the right-click menu
Scratchpad
- Pin variable values at a specific point in time for comparison and analysis
- Analyze problems by visually comparing code execution flows
See aslo
- Nim
- Rust
- Debugger
Favorite site
- Github - metacraft-labs/codetracer
- Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust | Hacker News
Pages that link here