GhostScope 路线图(里程碑)
June 7, 2026 · View on GitHub
GhostScope 仍处在快速演进阶段,以下里程碑按照“优先修补基础能力 → 打磨使用体验 → 拓展更多语言与部署形态”的顺序规划。
链式数组访问
- 一维链式数组访问已经支持常量下标与表达式下标,包括链尾
a.b.c[i]、链中间a.b[i].c,以及&arr[i]这类取地址形式。 - 后续工作主要集中在多维数组访问。
容器追踪增强
-p模式下,大部分容器 PID 追踪场景已经到位。- 当前已验证覆盖的场景包括:
- 宿主机 -> private PID namespace 容器
- private PID namespace 容器 -> 同一个 private PID namespace
- private PID namespace 容器 -> 嵌套子容器
--pid=host容器 -> 同一 host PID 视角(smoke)
- 剩余里程碑已经收窄为:
- 补强跨 PID namespace 的
-t生命周期维护,尤其是 host -> private container 这类场景 - 继续收敛 helper 可用性与 PID 映射仍属软限制的边界情况
- WSL 目前仍不在支持范围内
- 补强跨 PID namespace 的
- 详见容器支持与限制和限制列表。
Uprobe 增强
- 支持 sleepable uprobe(
uprobe.s/uretprobe.s),在合适场景下使用可睡眠 helper,尤其提升用户态内存读取的可靠性。 - 支持 multi-attach uprobe(
uprobe.multi/uretprobe.multi),让脚本展开出大量探针点时仍能保持更好的扩展性。 - 对暂时只能走普通
uprobe的内核或 libbpf/Aya 路径保留兼容性回退。
栈回溯(Stack Unwinding)
- 已支持 DWARF-only
bt/backtrace,用于可安全降到 eBPF 执行的 compact CFI row;深栈通过 tail-call unwind step program 分段完成。 - 后续继续增强 CFI 覆盖、跨模块准确性、停止状态诊断,以及大体量 debug info 场景下的性能。
- 保持 TUI 和 CLI 的源码感知展示能力:TUI 使用结构化展示,脚本
plain输出保持稳定文本。
稳定性与准确性
- 作为调试工具,持续修复缺陷、改进错误处理,确保数据一致性。
- 加强自动化测试与回归验证,让关键路径“可依赖”。
利用 bpftime 优化性能
- 评估从内核 uprobe 迁移到用户态 eBPF(bpftime)的可行性。
- 目标是降低上下文切换与 probe 开销,为高频追踪提供更好的采样能力。
高级语言特性
- 编译型语言方向:优先支持 Rust 的 async/trait 对象等高级语义。
- 解释型语言方向:探索与 Lua 等运行时协同抓取变量/栈信息的方案。
Client-Server 调用模式
- 典型场景:代码与调试信息在云端,目标二进制运行在测试机或本地。
- 规划让 GhostScope TUI 仅运行在控制端,eBPF Agent 独立驻留在目标主机,参考
gdb/gdbserver模式。 - 待核心能力稳定后再启动该特性,以免分散目前的开发精力。