#调试 #独立 #ckb #指令 #系统调用 #文件 #解码

app ckb-debugger

Nervos CKB 的独立调试器

7 个版本 (重大更新)

0.117.0 2024 年 7 月 30 日
0.116.1 2024 年 5 月 11 日
0.115.0-rc22024 年 3 月 21 日
0.114.0 2024 年 3 月 1 日
0.111.0 2023 年 11 月 17 日

#636魔法豆

Download history 186/week @ 2024-05-08 7/week @ 2024-05-15 2/week @ 2024-05-22 2/week @ 2024-05-29 2/week @ 2024-06-05 143/week @ 2024-07-24 57/week @ 2024-07-31

每月 200 次下载

MIT 许可证

2.5MB
1K SLoC

包含 (ELF exe/lib, 52KB) examples/print_log,(ELF exe/lib, 34KB) examples/fib,(ELF exe/lib, 26KB) examples/exec_callee,(ELF exe/lib, 26KB) examples/exec_caller,(ELF exe/lib, 27KB) examples/spawn_callee_strcat,(ELF exe/lib, 27KB) examples/spawn_caller_strcat更多

CKB 调试器

一个独立的调试器,可以用于链下合约开发。

使用方法

对于 Rust 库的使用,请参阅包含的测试,它们相当直观。

请参阅命令行帮助部分,了解二进制调试器的使用方法

ckb-debugger 0.113.0

USAGE:
    ckb-debugger [FLAGS] [OPTIONS] --mode <mode> --tx-file <tx-file> [args]...

FLAGS:
    -h, --help       Prints help information
        --prompt     Set to true to prompt for stdin input before executing
        --step       Set to true to enable step mode, where we print PC address for each instruction
    -V, --version    Prints version information

OPTIONS:
        --bin <bin>                                File used to replace the binary denoted in the script
    -i, --cell-index <cell-index>                  Index of cell to run
    -t, --cell-type <cell-type>                    Type of cell to run [possible values: input, output]
        --decode <decode>                          Decode RISC-V instruction
        --dump-file <dump-file>                    Dump file name
        --gdb-listen <gdb-listen>                  Address to listen for GDB remote debugging server
        --gdb-specify-depth <gdb-specify-depth>    Specifies the depth of the exec/spawn stack [default: 0]
        --max-cycles <max-cycles>                  Max cycles [default: 70000000]
        --mode <mode>
            Execution mode of debugger [default: full]  [possible values: full, fast, gdb, probe, gdb_gdbstub]

        --pprof <pprof>                            Performance profiling, specify output file for further use
        --read-file <read-file>
            Read content from local file or stdin. Then feed the content to syscall in scripts

    -s, --script-group-type <script-group-type>    Script group type [possible values: lock, type]
        --script-hash <script-hash>                Script hash
        --script-version <script-version>          Script version [default: 2]
        --skip-end <skip-end>                      End address to skip printing debug info
        --skip-start <skip-start>                  Start address to skip printing debug info
    -f, --tx-file <tx-file>                        Filename containing JSON formatted transaction dump

ARGS:
    <args>...

ckb-transaction-dumper 可以用于从 CKB 中转储调试器使用的全部模拟交易。

常见问题解答

如何打印调试信息

  1. 通过编译器参数 -fno-builtin-printf 编译合约,并用 CKB_C_STDLIB_PRINTF 替换。
  2. 设置 RUST_LOG=debug启用 输出 调试信息

依赖关系

~25–57MB
~1M SLoC