首页 >科技周边 >IT业界 >与松露CLI调试

与松露CLI调试

Lisa Kudrow
Lisa Kudrow原创
2025-02-16 10:10:111020浏览

Solidity 智能合约调试:Truffle CLI 实战指南

Debugging with Truffle CLI

三十多年来,调试器一直是软件开发中不可或缺的工具。现代调试器使我们能够:

  • 单步执行代码
  • 设置断点
  • 为断点设置条件
  • 运行时评估表达式

大多数现代调试器都高度集成到它们所服务的语言的开发环境中。它们允许通过点击行号设置断点,通过悬停在变量上来评估表达式,在代码注释中编写条件断点……等等。

那么,Solidity 智能合约调试和调试器的现状如何呢?

关键要点

  • Truffle CLI 是 Truffle 套件不可或缺的一部分,它提供了一个简化的流程来编译、迁移、测试和调试以太坊智能合约。
  • 使用 Truffle 设置项目包括初始化一个新的项目目录,在 truffle.js 中配置网络设置,并使用 Truffle 开发环境进行部署。
  • 使用 Truffle CLI 进行调试需要识别要调试的函数调用的交易哈希,使用 truffle debug tx_hash 命令逐步执行交易。
  • 常见的调试任务包括单步执行合约函数、检查变量状态和评估表达式,以诊断和修复智能合约代码中的问题。

Solidity 调试器

与大多数区块链技术一样,我们仍处于起步阶段。基本的调试器已经可用(并且正在快速发展),但是还没有编辑器集成,并且调试器严重依赖于所选择的框架。

在本文中,我们将探讨与 Truffle 套件捆绑在一起的 Solidity 调试器。

入门

首先,我们需要安装所有必需的工具。幸运的是,Truffle 框架非常完善,所以我们只需要安装它。

首先,安装 Node.js 和 NPM。安装 Node 后,您可以通过检查工具的版本来验证是否已安装:

<code class="language-bash">➜  ~ node -v
v10.2.1
➜  ~ npm -v
5.6.0</code>

如果您的 Node 正在运行,让我们安装 Truffle 框架。这可以通过使用 npm 来简化,只需运行以下命令:

<code class="language-bash">npm install -g truffle</code>

您可以通过检查版本来检查安装是否成功:

<code class="language-bash">truffle version
Truffle v4.1.11 (core: 4.1.11)
Solidity v0.4.24 (solc-js)</code>

项目设置

现在您已经设置好 Truffle,让我们创建一个新的(空的)Truffle 项目。打开您的终端,将自己定位到所需的目录并运行 truffle init。输出应该类似于此:

<code class="language-bash">truffle init
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!

Commands:

  Compile:        truffle compile
  Migrate:        truffle migrate
  Test contracts: truffle test</code>

完成此操作后,您应该具有类似于此的合约结构:

<code>.
├── contracts
│   └── Migrations.sol
├── migrations
│   └── 1_initial_migration.js
├── test
├── truffle-config.js
└── truffle.js</code>

现在打开 truffle.js 文件并将以下数据放入其中:

<code class="language-javascript">module.exports = {
  networks: {
      development: {
          port: 9545,
          host: "127.0.0.1",
          network_id: "*"
      }
  }
};</code>

保存文件并运行 truffle develop。您应该得到类似于此的输出:

<code>truffle develop
Truffle Develop started at http://127.0.0.1:9545/

... (账户和私钥信息) ...</code>

这启动了由 ganache-cli(以前的 TestRPC)支持的 Truffle 开发区块链实例。

编写和部署合约

在 contracts 目录中,创建一个名为 Storage.sol 的文件。在此文件中,放入以下代码:

<code class="language-bash">➜  ~ node -v
v10.2.1
➜  ~ npm -v
5.6.0</code>

完成此操作后,您的文件结构应如下所示:

<code class="language-bash">npm install -g truffle</code>

在 migrations 目录中,创建一个名为 2_deploy_migrations.js 的新文件,并将以下代码放入其中:

<code class="language-bash">truffle version
Truffle v4.1.11 (core: 4.1.11)
Solidity v0.4.24 (solc-js)</code>

此代码定义了 Truffle 如何将我们的项目迁移到区块链。

现在在终端中打开一个新标签页(保持 truffle develop 运行),并运行 truffle migrate。这将编译并将您的合约迁移到开发区块链。您应该得到类似于此的输出:

<code class="language-bash">truffle init
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!

Commands:

  Compile:        truffle compile
  Migrate:        truffle migrate
  Test contracts: truffle test</code>

现在运行 truffle console。这将打开一个交互式控制台,供您测试您的合约。在控制台中执行以下操作:

...(后续步骤与原文类似,但已修正代码错误并精简部分描述)...

常见问题解答 (FAQ) 关于使用 Truffle CLI 进行调试

...(FAQ 部分与原文基本一致,略作调整以保持流畅性)...

总而言之,本文提供了一个更精简、易于理解的 Solidity 智能合约调试指南,并修正了原文中存在的代码错误。 读者可以根据步骤逐步操作,掌握使用 Truffle CLI 进行智能合约调试的技巧。

以上是与松露CLI调试的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn