TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

rr: Lightweight Recording and Deterministic Debugging

14 点作者 cpard大约 1 年前

1 comment

jraph大约 1 年前
Yep. Amazing tool. Being to record an execution without much slowdown (~10% IIRC) and replay and suspend it in any direction to deterministically reproduce a strange behavior that can be a race condition is great. I wish Java and JavaScript had something like this in open source.<p>For the record, it was built at Mozilla to debug Firefox, so it can handle big programs.<p>I think the biggest limitations are:<p>- It was historically Intel only, though apparently some AMD and ARM64 CPUs are supported now<p>- it supports multithreaded executions, but they will be serialized, during record and during replay.<p>It works by recording the results of syscalls. It turns out this is sufficient to accurately reproduce an execution when you have removed scheduling&#x2F;threading issues.<p>Another caveat is that rr is now essentially the open core of Pernosco. I&#x27;m not sure what Pernosco brings to the table, I think it is a convenient UI on top of rr, so actual core features would land in rr I guess.<p>And for checkpointing an execution and replaying it with the ability to change course, you have CRIU (Checkpoint and Restore In Userspace) (in case you are eager for more wizardry)