#exit #server #variables #target #stack-trace

app erdb

嵌入式系统上的Rust调试器

3个版本

0.2.2 2022年10月16日
0.2.1 2022年10月16日
0.2.0 2022年10月1日

#542 in 调试

MIT/Apache

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 continueinfo 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-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双授权,不附加任何额外条款或条件。

依赖项

~68MB
~1.5M SLoC