查看端口

使用 lsof 可用于端口占用。主要有两种用法:

  1. 查看占用端口的进程

lsof -i :port
  1. 查看进程打开的文件

lsof -p pid

条件断点

以 slice 为例。假设断点为: buffer.len() == 220 ,则实际填充条件为 buffer.1 == 220 。在 vscode 中使用是,需要传递 native 表达式:

/nav buffer.1 == 240

内存问题

在 Rust 除非使用了 unsafe 语句,否则所有的行为都是定义的(如果 safe 情况下出现了未定义行为,则为编译器 bug)。

如果程序表现出了内存践踏的情况,则可检查:

  • 是否使用强制类型转换时出现了数值溢出

  • 是否使用了 unsafe 语句

如果是第二种情况,则可以使用以下方法进行检查:

ASan

asan 的作用主要是检查:

  • 使用了未分配的内存

  • 使用了未初始化的内存

  • 使用了已经释放的内存

  • 指针越界

  • 内存泄露

  • 条件竞争

  1. 在 Rust 中启用 ASan

RUSTFLAGS=-Zsanitizer=address cargo test --target aarch64-apple-darwin

监控内存

监控内存使用的命令为 WatchPoint。有两种方法:

  • w s e addr 用来监视地址 addr

  • w s v var 用来监视变量 var

与 C++ 类似。Rust 中的 const 变量无法以任意形式绕过(运行时保证)。
Last moify: 2023-07-23 07:44:55
Build time:2025-12-15 13:00:34
Powered By asphinx