Rust in Everything
基于 probe-rs 0.32.0

设计取舍

前面十个部分讲的是「它怎么做」,每章里顺带提过「为什么这样做、放弃了什么」。这一部分只有一章,把这些散落的取舍收到一起:

  1. 十二条取舍:全局注册表加插件;目标描述编译期转 bincode;探针 trait 分层加 polyfill;去掉 typestate;本地也走 RPC;Core 是短命视图;调试层只认 MemoryInterface;只读 .debug_frame,每次停下全量展开;轮询而不是中断;defmt 在客户端解码;gdb server 只做硬件断点;TODO 集中在哪几个文件。每条只写换来什么、付出什么、在哪一章有数字,机制不再重讲。
flowchart TB
  ext["可扩展:插件、注册表"] --> cost1["全局状态,库用户自己注册"]
  data["编译期目标描述"] --> cost2["改内置 YAML 要重编"]
  layer["探针分层加 polyfill"] --> cost3["每个访问单独成批"]
  rpc["本地也走 RPC"] --> cost4["dry-run 失效、入口不统一"]
  mi["只认 MemoryInterface"] --> gain["coredump、QEMU 都能接"]
  poll["轮询"] --> cost5["延迟与 USB 负载"]

💬 关联讨论

发起讨论
加载中...