3个版本
0.2.2 | 2022年10月16日 |
---|---|
0.2.1 | 2022年10月16日 |
0.2.0 | 2022年10月1日 |
#542 in 调试
125KB
3K SLoC
嵌入式Rust调试器 (erdb)
嵌入式系统上的Rust调试器。
Erdb目前仅在Linux上工作。它已在STM32F411RETx开发板上进行了测试。
功能
- 闪存目标。
- 继续、停止、单步和重置程序。
- 设置和清除硬件断点。
- 打印变量、寄存器、MCU状态等。
- 打印堆栈跟踪。
- 反汇编机器代码。
安装
cargo install --path .
运行
Erdb有两种以下模式
- CLI模式 - 在终端启动TUI。
- 服务器模式 - 启动DAP服务器。
Erdb默认以CLI模式启动。有关两种模式的更多信息,请参阅下文的小节。
CLI模式
使用以下命令启动erdb
erdb
注意:几乎所有子命令都有一个别名,通常是子命令中每个单词的首字母。例如:
target c
=target continue
,info st = info stack-trace
。
Erdb需要以下3个配置
chip
- 芯片类型,例如STM32F411RETx
。work-directory
- 项目目录根的绝对路径。elf-file
- 编译的二进制/elf文件的绝对路径。
可以使用config
命令设置这些。
但是,使用erdb的最简单方法是创建一个启动erdb并设置所有3个配置的shell脚本。它可能看起来像这样
#!/bin/bash
erdb --chip STM32F411RETx \
--work-directory /home/niklas/exjobb/nucleo64-rtic-examples \
--binary-file-path /home/niklas/exjobb/nucleo64-rtic-examples/target/thumbv7em-none-eabi/debug/nucleo-rtic-blinking-led
服务器模式
使用以下命令将erdb作为DAP服务器启动
erdb -m server
建议使用标志-v
以获取更多服务器日志。
Erdb默认使用端口8800
,但可以使用标志-p <port>
进行更改。
Crate rust-debug
Erdb 是使用 debug crate 构建的 rust-debug。因此,这是一个如何使用该 crate 的绝佳例子。
许可证
根据以下任一许可证授权:
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任由您选择。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双授权,不附加任何额外条款或条件。
依赖项
~68MB
~1.5M SLoC