Skip to content

Getting Started

Welcome to the CodeTracer's getting started section. This guide will help you understand how to record and replay programs in each of the supported programming languages.

Core Concept: Record and Replay

Unlike traditional debuggers that attach to a running process, CodeTracer works by first **recording** your application's execution into a trace file. This trace captures everything that happens during the run.

Once a recording is made, you can **replay** it as many times as you need in the CodeTracer GUI. This allows you to inspect the application's state at any point in time, move forwards and backwards through the execution, and use powerful features like tracepoints without having to run your application again.

Think of it like recording a video of your program's execution that you can then analyze in detail.

How to Use This Guide

This guide is structured to help you get started quickly and then dive deeper into the features that interest you.

General-Purpose Languages

These languages are recorded directly via the ct CLI (ct record, ct run):

  • **Python**: Steps for installing the recorder, creating a trace, and replaying it with your interpreter.
  • **Ruby**: Examples and steps how to trace a Ruby program.
  • **JavaScript / TypeScript**: Instrument and record JS/TS programs.
  • **WASM**: Examples and steps how to trace a WASM program.

Zero-Knowledge Languages

  • **Noir**: Examples and steps how to trace a Noir program.
  • **Circom**: Trace witness generation for Circom zero-knowledge circuits.
  • **Miden**: Trace programs on the Miden STARK-based VM.
  • **Leo (Aleo)**: Trace Leo smart contracts on the Aleo network.

Smart Contract Languages

These languages use dedicated recorder binaries. Record with the language-specific recorder, then view with ct replay --trace-folder <dir>:

Need some help?
Contact our supportFrequently asked questions