开发者社区> 问答> 正文

truffle如何进行调试

智能合约的truffle框架如何进行调试

展开
收起
北藏有名 2020-02-06 16:08:13 737 0
1 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    调试命令:

    要使用,获取要调试的交易 hash,运行以下命令启动调试器 truffle debug

    enter 回车键设置为执行最后输入的命令。当调试器启动时,在执行期间enter 键被设置为步进到源代码的下一个逻辑元素。此时,我们可以按 enter 单步执行交易,或者输入一个可用命令来更详细地分析交易

    o 跳过 此命令跳过当前行 (即当前在solidity 源文件中语句和表达式的位置),如果我们不想再当前行上进入函数调用或合约创建,或者我们想快速跳转到源文件中的特定点,请使用此命令。

    i 进入 此命令进入当前所在的函数调用或合约创建。使用此命令跳转到该函数内,并快速开始调试其中存在的代码。

    u 跳出 此命令退出当前运行的函数,如果这是交易的入口点,使用此命令会快速返回到调用函数,或结束交易的执行。

    n 下一步 此命令将执行源代码中的下一个逻辑语句或表达式。例如,在虚拟机可以评估完整表达式之前,需要首先评估子表达式。如果要分析虚拟机评估的每个逻辑项,请使用此命令。

    ; 单步指令 此命令允许我们逐步执行虚拟机评估的每个单独指令。如果要了解 solidity 源代码创建的低级字节码,这个命令非常有用。使用此命令时,调试器还将在评估指令时打印出堆栈数据。 可以将此命令与数字参数一起使用,以多次步进。

    p 打印指令 此指令打印当前指令和堆栈数据,但不会跳到下一条指令。当我们使用上面调试命令导航到一个交易语句时,希望查看当前指令和堆栈数据时,就可以使用此命令

    h 打印可以调试命令列表

    q 退出 退出调试器

    r 重置 将调试器重置为交易的开头

    b 设置断点 此命令允许我们为任何源文件中的任何行设置断点。命令后面可以接一个行号,或相对(当前)行号,或者可以简单地在当前所在行添加断点。 不需要加载交易来设置断点,但在这种情况下,必须制定将其设置的源文件。

    B 移除断点 此命令允许我们删除任何现有断点,方法和添加断点一样,键入 B al 删除所有断点

    c 调到下一个断点 此命令将代码继续执行,直到到达下一个断点或执行到最后一行

    • 添加一个监视表达式 使用 +: 添加一个监视表达式,这样在每次执行的时候,都可以看到该表达式的值。

    • :移除监视表达式 使用 -: 删除监视表达式

    ? 列出多有的监视表达式和断点 此命令将显示所有监视表达式的列表及断点

    v 显示变量 此命令将显示当前变量及其值

    T 卸载交易 此命令卸载当前交易,以便可以加载新交易

    t 加载交易 此命令加载新交易(给定 交易哈希),请注意,如果您已经加载了交易,则必须首先显示卸载它,然后才能加载新交易。

    2020-02-06 16:08:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载