Skip to content
Search

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
  • Advantages of time-travel debugging
    • 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
  • Tracing uses an open format; projects to support languages such as Ruby and Python are in progress
    • 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

Favorite site

author Zer0 sitemap