npm 包 truffle-debug-utils 使用教程

介绍

truffle-debug-utils 是一个 npm 包,用于在 Truffle 智能合约开发框架中进行调试操作。该工具集提供多种函数和命令行工具,可以帮助开发者在 Truffle 上调试合约,快速定位问题并进行排错。本文将介绍 truffle-debug-utils 的具体使用方法,以及如何在 Truffle 中使用该工具。

安装 truffle-debug-utils

使用 truffle-debug-utils 前,我们需要确保已经安装了 Truffle 。然后,我们可以通过 npm 安装 truffle-debug-utils ,打开终端窗口并输入以下命令:

--- ------- -------------------

安装完成后,我们就可以在项目中引入和使用该包。

使用 truffle-debug-utils

启用调试

在使用 truffle-debug-utils 之前,我们需要先启用 Truffle 中的调试模式。调试模式通过在 truffle.js 中添加相应的配置来实现。编辑 truffle.js 文件,在 module.exports 代码块中添加以下代码:

-------------- - -
    -- --- ------
    --------- -
        -- --- ----
    --
    ------ -
        -- -- --------- ----
        --------------------------- -----
        -- ------------
        ----- -------- -------- -----
        ----- --------------- -------- ----------
        -- -----------
        ----------- ------
        -- -----------
        ---------- -----
    -
    -- --- ----
-

引入 truffle-debug-utils

接下来,我们需要在智能合约文件中引入 truffle-debug-utils 。在文件的开头添加以下语句:

----- ------- ------ - -------------------------------

该语句定义了两个常量变量 debug 和 trace,它们是用于调试的核心 API。

使用 truffle-debug-utils

1. 调试函数

调试函数是用于在智能合约中进行调试操作的函数,它们可以帮助我们定位问题、输出调试信息等。一种常见的调试函数是 console.log(),它可以输出一些调试信息到控制台。然而,当我们在 Truffle 中进行调试时,console.log() 并不能生效,因为 Truffle 将所有智能合约编译为 EVM 代码并放在虚拟机中执行,无法直接输出调试信息到主机的控制台中。

truffle-debug-utils 提供了一个名为 debug() 的函数,它可以替代 console.log() 函数,在 Truffle 中输出调试信息。debug() 函数被设计用于替代 console.log(),它的输入和输出与 console.log() 相似。非常适用于深度调试或错误排除。例如:

-------- ------------ -
    ----------- ---------- ------
    -- --- ----
    ----------------- --------
-

2. 远程调试

remoteDebug()函数是truffle-debug-utils中用来启动一个与Truffle之间的网络连接的函数。前提是我们已经在上述 Truffle 配置中添加了调试参数,并启动了 Truffle 调试网络端口。接下来我们需要为该函数传递调试的端口和安全的私有Key等信息。

在 Truffle 调试模式下打开新的终端窗口, 然后运行如下命令:

------- ----- --------- -----------

运行完成后,该命令将会将生成类似如下输出:

-------- ------- -----------
------- -------- ---------
---- -------- ---------
-------- --------- -- --------------

打开新的终端窗口, 然后将自己的智能合约加载到终端:

------- -------

连接调试挂载点时,我们需要将连接所需的信息传递给 debug() 函数。在本例中,当前运行的 Truffle 服务器的 IP 地址是 localhost,而调试服务器端口是 9545 。我们还需要指定一个唯一的会话名称sessionName ,以便与我们的 Truffle 实例建立一个新的会话。

----- ------------- - -------------------------------
-------------
    ---- ------------------------
    ------------ ---- ---- ------- --- -----
    ------------ ------------
-- -------- ----- ---- -
    ----------------------
--

我们可以在脚本中任何想要暂停的位置调用 remoteDebug(),它将会暂停程序的执行,等待调试器连接。

3. 调试跟踪

调试跟踪是指在执行过程中,记录智能合约的每一个操作,并将其输出到调试端口的函数。它可以帮助我们更加深入地理解智能合约的执行过程,定位代码实现的瓶颈,快速调试程序。

truffle-debug-utils 中提供了 trace()函数,用于在 Truffle 中进行调试跟踪操作。我们只需要在需要跟踪的代码前后加入 trace() 函数,就能在控制台看到智能合约的详细执行信息。

-------- ------------ -
    --------
    -- --- ----
    --------
-

代码示例

----- ------- ------ ------------ - -------------------------------

------------------- ------------------ -
    ---------- ----- ---------- -
        --- -------
        --- -------

        -- ---- ----- --
        -------------
            ---- ------------------------
            ------------ ---- ---- ------- --- -----
            ------------ ------------
        -- -------- ----- ---- -
            -------------------------
        ---

        -- --------- ----- --
        -------------
        ------ - ----- ----------------------------- --------------
        -------------

        -- ------- ----- --
        -------------- ----------- -----------
        ------ - ----- ------------------------------ ------ --------------
        -------------- ------------

        -- --------- ----- --
        -------------
        ----- ----------------------------- --------------
        -------------
    ---
---

结论

truffle-debug-utils 是一个十分实用的智能合约调试工具,它提供了多种函数和命令行工具,可以帮助开发者快速定位智能合约中的问题,快速排除错误。在使用 truffle-debug-utils 进行调试时,需要注意一些细节问题,如调试模式的开启、引入 truffle-debug-utils、使用 debug() 和 trace() 函数等,以充分发挥其功能。这些技术点对于入门和熟练开发人员来说都非常有用,建议深入学习和掌握。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/72572


猜你喜欢

  • npm 包 tag-input 使用教程

    前言 Tag 输入框是 Web 开发中常用的元素,用于输入多个标签(tag)。而使用 npm 包 tag-input 可以非常方便地实现相关功能。本篇文章将带您详细了解如何使用 npm 包 tag-i...

    5 年前
  • npm 包 w3core-hello-world 使用教程

    简介 w3core-hello-world 是一个 npm 包,用于在前端项目中快速构建 Hello World 代码示例。 安装 使用 npm 命令进行安装: --- ------- -------...

    5 年前
  • npm 包 content-type-mime 使用教程

    在前端开发中,我们常常需要处理文件类型和 MIME(多用途因特网邮件扩展)类型,例如在上传文件时判断文件类型,或者在下载文件时设置响应头的 MIME 类型。而 content-type-mime 就是...

    5 年前
  • npm 包 soyie-cli 使用教程

    在前端开发中,提高工作效率是我们始终追求的目标。这时,使用一些自动化工具就能够很好地帮助我们提高效率。如今,npm 已经成为了前端开发的必备利器,而 soyie-cli 就是一个非常好用的 npm 包...

    5 年前
  • npm 包 file-mime 使用教程

    介绍 在前端开发中,常常会涉及到文件上传或下载等操作。而在这些操作中,文件的类型始终是一个重要的问题。因为对于不同的文件类型,前端在显示或处理时需要采用不同的策略。

    5 年前
  • npm包cost使用教程

    npm包cost是一个非常有用的工具,它能够帮助你分析你的项目中的依赖项,并计算每个依赖项的大小、下载次数、占比等信息。这对于前端工程师来说特别有用,可以帮助优化项目的性能、减小项目体积等。

    5 年前
  • npm 包 react-currency-conversion 使用教程

    在前端开发过程中,经常会遇到货币转换的需求。为了方便开发者进行货币转换,提高项目的可维护性和开发效率,开发者推出了一个名为 react-currency-conversion 的 npm 包。

    5 年前
  • npm 包 hbs-utils 使用教程

    hbs-utils 是一个 Node.js 的 npm 包,可以用来快速生成 Handlebars 模板,提高前端开发效率。本文将介绍如何使用 hbs-utils 包进行模板开发。

    5 年前
  • npm 包 express-less 使用教程

    在前端开发中,样式表是非常重要的一个组成部分。在实际开发中,我们通常使用 Less 等预处理器处理 CSS,以便更好地维护和修改样式。 在 Node.js 生态系统中,有一个非常流行的 Web 应用程...

    5 年前
  • npm 包 contacts-pane 使用教程

    简介 contacts-pane 是一个用于显示通讯录的轻量级 npm 包。它可以方便地将通讯录数据以清晰的表格形式展示出来,同时可以支持分页、排序等功能。此外,contacts-pane 也支持自定...

    5 年前
  • npm 包 chat-pane 使用教程

    简介 在前端开发过程中,我们经常需要实现聊天功能,而 chat-pane 就是一个非常实用的 npm 包,它可以让我们快速地构建一个简单的聊天界面。 chat-pane 主要实现了以下功能: 聊天记...

    5 年前
  • npm 包 source-pane 使用教程

    前言 在前端开发过程中,我们必不可少地要写一些组件或者库。使用 npm 管理这些组件或库已经成为了一个不二之选。而在使用这些组件或库时,我们需要查看它们的源码以便更好地理解它们的工作原理。

    5 年前
  • npm 包 solid-auth-tls 使用教程

    solid-auth-tls 是 Solid 项目的一个 npm 包,用于在 Web 应用程序中实现线上认证和签名功能。该包使用 TLS(传输层安全性)协议中的客户端 SSL 证书,通过连接存储器管理...

    5 年前
  • npm 包 solid-ui 使用教程

    前言 在前端开发中,我们经常需要使用第三方库来解决某些问题,npm 是目前最流行的 JavaScript 包管理器之一,十分方便实用。在众多的 npm 包中,solid-ui 可以帮助我们开发基于 S...

    5 年前
  • npm 包 pane-registry 使用教程

    在前端开发中,经常需要使用各种第三方组件和工具来提高工作效率和代码质量。npm 是一个流行的 JavaScript 包管理器,可以帮助我们方便地安装和管理各种 JavaScript 包。

    5 年前
  • npm 包 meeting-pane 使用教程

    前言 随着现代 Web 应用的不断发展,前端开发人员在日常工作中面临越来越多的挑战。为了解决这些挑战,前端社区不断涌现出新的工具和库。其中,npm 包是前端技术领域中一个非常重要的部分。

    5 年前
  • npm包 issue-pane 使用教程

    前言 在日常前端开发中,我们不可避免地会提交代码到代码托管平台进行代码审核,如GitHub、GitLab等,同时你也会发现,这些代码托管平台都提供了issues功能,用于提供bug反馈和任务管理等。

    5 年前
  • npm 包 folder-pane 使用教程

    前端开发中,经常需要处理文件和文件夹,展示和浏览文件和文件夹是其中的重要部分。而 npm 包 folder-pane 则提供了一个非常方便的文件夹展示组件。本文将详细介绍 folder-pane 的使...

    5 年前
  • Solid-Panes 的使用教程

    Solid-Panes 是一个基于 Solid.js 的前端组件库,它提供了一系列可复用的面板组件,可以用于实现网站或应用的布局。这个 npm 包的使用教程,将会详细讲解如何在你的项目中使用 Soli...

    5 年前
  • npm 包 mashlib 使用教程

    简介 mashlib 是一个基于 JavaScript 的轻量级活动流(ActivityStreams)JSON 解析器。它可以用于构建活动流网站,将不同网站上的活动流合并,方便用户查看。

    5 年前

相关推荐

    暂无文章