Skip to content

CodeTracer 是一款用户友好的时间旅行调试器,旨在支持各种编程语言。 www.youtube.com/watch?v=xZsJ55JVqmU&ab_channel=metacraft-labs

License

AGPL-3.0 license 169 stars 2 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings

Additional navigation options

metacraft-labs/codetracer

main BranchesTags Go to file Code

Folders and files

Name| Name| Last commit message| Last commit date
---|---|---|---

Latest commit

History

2 Commits
.github/workflows| .github/workflows
appimage-scripts| appimage-scripts
ci| ci
config| config
docs| docs
examples| examples
libs| libs
nix| nix
node-packages| node-packages
non-nix-build| non-nix-build
resources| resources
src| src
ui-tests| ui-tests
views| views
.babelrc| .babelrc
.editorconfig| .editorconfig
.envrc| .envrc
.gitattributes| .gitattributes
.gitignore| .gitignore
.gitlab-ci.yml| .gitlab-ci.yml
.gitmodules| .gitmodules
.projectile| .projectile
CHANGELOG.md| CHANGELOG.md
CODE_OF_CONDUCT.md| CODE_OF_CONDUCT.md
COPYRIGHT| COPYRIGHT
LICENSE| LICENSE
README.md| README.md
SECURITY.md| SECURITY.md
SUPPORT.md| SUPPORT.md
THIRD_PARTY_NOTICES.md| THIRD_PARTY_NOTICES.md
config.toml| config.toml
flake.lock| flake.lock
flake.nix| flake.nix
funding.json| funding.json
icon.svg| icon.svg
justfile| justfile
nim.cfg| nim.cfg
wdio.conf.js| wdio.conf.js
webpack.config.js| webpack.config.js
View all files

Repository files navigation

CI Status Discord Download AppImage Download macOS 小提示: 您可以将下载的应用程序放置在您选择的位置(例如,macOS 上的 Applications 文件夹或 Linux 上的 ~/.local/share/applications)。 首次启动 CodeTracer 时,它将提示您完成剩余的安装步骤,例如将命令行实用程序添加到您的 PATH。 注意: 首次启动时,macOS 用户将看到错误消息“CodeTracer 已损坏,无法打开”。 要解决此问题,请执行命令 xattr -c <path/to/CodeTracer.app>。 我们希望通过我们加入 Apple Developer 计划来确保 CodeTracer 得到正确的签名和 Apple 的列入白名单,从而尽快解决这一不便。 有关更多详细信息,请参阅 https://discussions.apple.com/thread/253714860?sortBy=rank

Introduction

CodeTracer 是一款用户友好的时间旅行调试器,旨在支持各种编程语言。 它将程序的执行记录到可共享的独立跟踪文件中。 您可以在 GUI 环境中加载生成的跟踪文件,该环境允许您在执行中向前和向后移动,并检查所有内存位置的历史记录。 他们说一张图片胜过千言万语——好吧,视频更好! 观看下面的演示,了解 CodeTracer 的实际应用: 观看视频

The Benefits of Time-Travel

与传统的调试器相比,CodeTracer 为您提供了两个主要的超能力:

Current state of the project and 2025 roadmap

CodeTracer 的初始版本支持 Noir 编程语言。 它是在与 Blocksense 团队合作开发的,目前需要使用 Blocksense Noir Compiler,该编译器包含在 CodeTracer 发行版中。 CodeTracer 的开源开发得益于 Aztec Network、Arbitrum Foundation 和 Aptos Foundation 的慷慨支持。 在 2025 年期间,CodeTracer 将演变为一个全面的 Web3 开发工具包,通过获得对许多其他智能合约和零知识编程语言的支持。 它的大部分功能将被打包到可重用的库中,这些库将为创建具有高级事务跟踪功能和适用于 Visual Studio Code 和其他 IDE 的全知调试插件的区块浏览器提供支持。 CodeTracer 使用 open format 用于其跟踪文件,我们已经启动了几个社区驱动的项目,旨在增加对其他编程语言的支持:

Metacraft Labs 还在开发一个替代后端,它能够与 RR 录制文件一起使用,这将使 CodeTracer 适合调试各种系统编程语言中的大规模程序,例如 C/C++、Rust、Nim、D、Zig、Go、Fortran 和 FreePascal。 为了确定我们的优先级并帮助我们更好地了解用户群的人口统计数据,请填写 CodeTracer Developer Preferences Survey。 为了加速我们的开发,请考虑捐款给我们的 Open Collective 活动。 任何在 2025 年 6 月之前捐款超过 50 欧元的人都将永远获得我们系统编程语言测试版的早期访问权。 CodeTracer OpenCollective

The features of CodeTracer in more depth

一旦你有了时间旅行,你就可以从头开始重新构想调试器的工作方式! 以下是 CodeTracer 的一些功能,使其与传统的调试器区分开来:

Omniscience

当 CodeTracer 在某一行代码处中断时,它不仅知道过去,还知道未来。 您可以立即在源代码旁边看到当前函数中所有变量的值。 这包括循环中的变量,您可以在其中轻松滚动浏览迭代。 采用的代码分支突出显示,而未执行的代码立即灰显。 omniscience

Tracepoints

许多开发人员倾向于从职业生涯早期使用交互式调试过渡到主要依赖于仔细放置的打印语句,因为他们开始在分布式和实时系统中面临更困难的问题。 CodeTracer 为您提供两全其美的体验。 跟踪点允许您查看向程序添加额外代码的效果,而无需重新编译和重新录制。 添加的代码可以包含 if 语句、额外的函数调用以及各种打印或绘制捕获数据的方式。 输出通常在几秒钟内生成。 [tracepoint](https://github.com/metacraft-labs/<https:/camo.githubusercontent.com/47f097503a88912574ed29ae17fa4d74171377