跳转到主要内容
Tenderly Debugger 逐个调用和源代码行地遍历 EVM 交易的执行过程,暴露执行跟踪、堆栈、合约状态以及交易回滚的确切位置。使用它来查找交易失败的原因、在任何步骤检查合约状态,并针对已验证的 Solidity 源代码重播交易。 观看这段简短的视频以了解使用 Debugger 的基础知识,并遵循下面的快速入门查看详细的功能演练。 在 Loom 上观看 →

Debugger 快速入门

要使用 Debugger,您需要从特定交易开始。试试这个示例交易
  1. 转到左侧的 Transactions 选项卡,或在顶部 Explorer 栏中搜索交易哈希。
  2. 点击右上角的 Debugger 按钮。
Debugger 界面由四个主要面板组成: Debugger panels
  • 执行跟踪(左上):显示交易期间调用的序列。
  • 智能合约源代码(右上):显示正在交互的合约代码。
  • 堆栈跟踪(左下):列出直到当前函数所调用的方法。
  • 调用信息(右下):提供当前调用的详细信息。

执行跟踪

Execution Trace 部分让您可以看到在交易生命周期中进行的每一次调用。方便的切换让您可以在完整跟踪或仅 CALLDELEGATECALL 之间过滤视图。 您还可以直接在跟踪的任何部分留下评论,这对协作或个人笔记很有用。 Debugger panels

堆栈跟踪

Stack Trace 提供了对导致活动函数调用之前调用的方法的查看,让您对交易的流程有更清晰的了解。

解码调用信息

在这里,您以 JSON 格式获得交易执行跟踪中当前调用的解码详细信息。这包括:
  • 被调用函数的名称
  • 操作码(JUMPCALLDELEGATECALLSTATICCALLCREATE2CREATEREVERTJUMPDEST
  • 合约和调用者地址,以及调用者的余额
  • 解码的输入和输出
  • Gas 使用统计,显示已使用的总 gas、当前函数消耗的 gas 和剩余 gas

在调用跟踪中导航

使用 Debugger 的导航按钮,跳转穿过调用跟踪和代码行非常简单。 Next/Previous 让您在调用跟踪中移动,而 Step UpStep Over 帮助您导航堆栈跟踪和调用层级。 Debugger panels

评估表达式

Evaluate 功能允许您直接在 Debugger 中测试表达式。这对于检查全局变量、合约变量、函数参数和局部变量非常合适。 Eval modal 当前版本的 Evaluate 支持数组和结构体形式的表达式。不支持元组,因此无法评估。 Debugger + expressions visible for Eval
请注意,Evaluate 仍在开发中,我们正努力让它变得更加强大。