Show HN: CodeTracer – 一款用Nim和Rust实现的新型时间旅行调试器

Show HN: CodeTracer – 一款用Nim和Rust实现的新型时间旅行调试器

Hacker News 摘要

原标题:Show HN: CodeTracer – A new time-traveling debugger implemented in Nim and Rust

CodeTracer是一款用户友好的时间旅行调试器,旨在支持多种编程语言。它可以记录程序的执行状态,并生成一个可分享的独立追踪文件。用户可以在图形界面中加载这些追踪文件,前后移动以查看执行历史,检查所有内存位置的状态。

与传统调试器相比,CodeTracer具有两个显著优势:

1. 一旦在记录中捕捉到一个错误,基本可以认为这个错误已被解决。捕捉难以重现的错误时,它能显著缩短排查时间。

2. 当你了解程序中某个值的来源时,大多数错误就能轻易揭示。CodeTracer记录用户可扩展的相关输出事件,并在GUI中以可搜索的时间线形式展示这些事件。用户可以通过点击特定的输出事件,直接跳转到代码生成该输出的瞬间。

CodeTracer的初始发布支持Noir编程语言,并与Blocksense团队合作开发。未来版本计划在2025年支持更多智能合约和零知识编程语言,逐步发展成全面的Web3开发工具包。它的功能将被打包成可重用的库,支持创建具有先进交易追踪能力的区块链浏览器和调试插件。

CodeTracer的主要特点包括:

全知性:在代码中的某个行断点处,用户可以看到当前函数中所有变量的值。

追踪点:允许开发者在不重新编译和录制的情况下,查看添加的代码效果。

调用追踪:提供整个函数调用树,用户可以便捷地浏览和过滤。

状态和历史浏览器:每个变量都有历史记录,用户可查看变量执行期间的所有值,并跳转到计算这些值的表达式。

事件日志:以时间顺序显示程序中的任何感兴趣事件,与追踪点输出交织。

终端输出:标准终端形式呈现记录的输入输出事件,允许用户点击查看特定字符生成的瞬间。

鼠标步进:用户可以快速通过与源代码的交互,进行程序执行的跳转。

草稿区:提供一个玩耍区,用户可以从不同时间和位置固定值,探索它们的差异。

此外,CodeTracer还提供命令行接口(CLI)以方便地创建和加载追踪文件,并与持续集成过程集成。用户可以自定义键盘快捷键,以提高工作效率。

CodeTracer目前是开源项目,遵循GNU Affero通用公共许可证(AGPLv3),并接受为其开发提供的资助,以加快其功能的扩展。


原文:https://github.com/metacraft-labs/codetracer

评论:https://news.ycombinator.com/item?id=43280615

Report Page