断点调试 (Datapack Debugger)
模组属性评比

距离显示结果还剩5票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    活跃
    开源

    断点调试

    Datapack Debugger

    0.0

    无人问津

    昨日指数: 4
    昨日平均指数: 67.753

    1128

    总浏览

    --

    资料填充率


    如何下载?
    • 这是一个适用于 Minecraft 1.21 的 Fabric 模组,为数据包的开发引入了重要的断点调试功能。


      在数据包中,你可以在 .mcfunction 文件中插入 #breakpoint 注释来设置断点。例如:

      #test:test

      say 1
      say 2
      #breakpoint
      say 3
      say 4

      在这个例子中,当游戏执行完 say 2 后,游戏将会遇到断点,从而被“冻结",或者说进入“断点调试模式”。这个时候你仍然可以四处移动,或者执行命令之类的,任何你想做的事情。这个“冻结”的效果和执行了 tick freeze 命令后的效果类似。

      你可以在游戏被冻结的时候,执行一些命令来观察你数据包的过程量,或者进行一些调试。不过需要注意的是,只有聊天栏里面执行的命令才会被正常运行,即使是通过 聊天栏执行了函数,那么被执行的函数中的语句也会被冻结。


      当游戏被冻结的时候,你可以使用命令 /breakpoint step 来执行下一条命令。在上面的例子中,当游戏遇到断点后,你可以使用 /breakpoint step 来执行 say 3, 然后再使用 /breakpoint step 来执行 say 4。当所有的命令都被执行完后,游戏将会被解冻,继续运行。

      当游戏被冻结的时候,你可以使用命令 /breakpoint move 来解冻游戏,继续运行。


      使用 /breakpoint get <key> 可以获取到宏函数中的宏参数的值。例如:

      #test:test_macro

      say start
      #breakpoint
      $say $(msg)
      say end

      在执行 /function test:test_macro {"msg":"test"} 后,作者将值 test 传递给了宏参数 msg。同时,在执行函数的过程中,游戏会在 $say $(msg) 之前触发断点暂停。这个时候,就可以使用 /breakpoint get msg 来获取到值 test。


      使用 /breakpoint stack 可以获取到当前游戏的函数栈。

      例如,如果有以下两个函数:

      #test:test1
      say 1
      function test:test2
      say 2

      #test: test2
      say A
      #breakpoint
      say B

      当游戏暂停在断点位置的时候,在聊天栏执行 /breakpoint stack 即可将函数调用栈打印在聊天栏中。

      test:test2
      test:test

      通过 /breakpoint run <command>,你可以在当前上下文中运行任何命令,就像 execute ... run ... 一样。

    短评加载中..