Live data from Hacker News

Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

github.com

11–20 of 59 posts

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#11
post #7

I love it, I always wished for something like that. Will try to later test with python. Wish there was also for JS/TS. As for rr debugger did it got by now any support for MacOS or Windows or Android? I'm also wondering how heavy are those recording for typical apps. This would be also great for LLM to give some context via MCP server or even let LLM pick what variables history wanna see instead of giving full record…

Thank you!

The Python initial prototype is not yet finished. It's easy to play with, so anyone interested can actually work on it! Currently, in the experimental tracers, Ruby is usable for smaller programs, so one can try Ruby immediately.

I do plan on improving some of the prototypes, and on adding additional ones: for Lua, but JavaScript: e.g. v8 is also a good target. Scripting language users that find it useful, are welcome to discuss/chat with us, or even directly contribute or propose support for new languages.

A form of record filtering is planned indeed.

We have experimented with automatic chart visualizations of some things, we've planned custom visual representation as well, great to see interest in those

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#13
Congrats on your release!

One question I have is, how exactly does it record and what are the boundaries of the recording?

For example does it only record the userland execution of a single process, or does it have broader boundaries like including kernel code and/or execution of multiple processes? How does it handle shared memory regions that may be modified outside of the recording?

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#14

Looks really cool, but in production systems, won't the trace files proliferate at extreme speed? How would you correlate the files to a certain session for user identification for example?

We are also planning to develop a distributed tracing platform, similar to Jaeger and OpenTelemetry, that continuously records the execution of many distributed processes (e.g. micro-services).

Unlike the existing platforms, which capture only message flows and require you to make educated guesses when some anomaly is observed, our system will let you accurately replay the processing code for each message to quickly identify the root cause for the anomaly.

This would rely on our ability to jump to the specific moment in time when a certain incoming message starts being processed. This moment can be identified either by a log line with a specific format or by a call to some special tracking function (e.g. track_incoming_message(request_id)).

For the system languages, the RR[1] recordings try to be practical by capturing only the non-deterministic events in the program execution. You can pair this with a ring buffer that discards the data after a certain retention period.

For the scripting languages(or any implementation using the db-like traces) we might add some advanced record filtering options.

(But maybe we are misunderstanding the question?)

1: https://rr-project.org/

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#15

Looks really cool, but in production systems, won't the trace files proliferate at extreme speed? How would you correlate the files to a certain session for user identification for example?

Especially since the trace files are in .json. [0]

[0] https://github.com/metacraft-labs/runtime_tracing#format

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#16
post #7

I love it, I always wished for something like that. Will try to later test with python. Wish there was also for JS/TS. As for rr debugger did it got by now any support for MacOS or Windows or Android? I'm also wondering how heavy are those recording for typical apps. This would be also great for LLM to give some context via MCP server or even let LLM pick what variables history wanna see instead of giving full record…

> Wish there was also for JS/TS.

There’s Replay for browsers and Wallaby for Node.

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#17
The Noir support makes sense given its use in ZK proofs where execution tracing is particularly valuable, but I'm really looking forward to the Python and Ruby implementations. Those languages' dynamic nature makes bugs particularly elusive sometimes.

Has anyone here tried using this with Noir yet? I'm curious about the performance overhead of the tracing mechanism, especially for longer-running programs. Also wondering if there are plans to support JavaScript/TypeScript for web development use cases.

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#19
post #17

The Noir support makes sense given its use in ZK proofs where execution tracing is particularly valuable, but I'm really looking forward to the Python and Ruby implementations. Those languages' dynamic nature makes bugs particularly elusive sometimes. Has anyone here tried using this with Noir yet? I'm curious about the performance overhead of the tracing mechanism, especially for longer-running programs. Also wonder…

The planned RR recordings integration is what I'm most excited about though. Having this capability for systems languages like Rust and C++ would be transformative for complex debugging scenarios where you're often forced to restart debugging sessions from scratch after stepping past a crucial point.

Re: Show HN: CodeTracer – A time-traveling debugger implemented in Nim and Rust

#20
Very excited for this! I donated on open collective already. The team is full of talented people. A nice interface to time travel debugging, with Nim support soon nonetheless.

Though if it uses rr it won’t be able to run on macOS. Bummer, macOS seems to get harder and debug on. Luckily lima vms make it easy to remote :/

Post reply on HN