基于 eBPF 的动态调试设计#
背景#
GDB 静态断点调试需要暂停程序的执行,会干扰被调试对象的运行。eBPF 动态跟踪可以在不暂停程序的情况下收集运行时信息,与静态断点调试形成互补。
方案设计#
结合 GDB 断点与插桩的方式,设计基于白名单的动态函数调用跟踪方法:通过白名单指定需要跟踪的函数,在函数被调用时收集运行时信息。
项目设想还包括:在物理机器上利用 eBPF 机制,跟踪用户模式、内核模式和虚拟机监控模式的代码执行状态和数据结构信息。
历史工作#
第一阶段曾实现过 eBPF 调试面板(WebView):连接 eBPF side-stub,查看并搜索内核/用户程序的符号表,选择函数地址注册 kprobe/uprobe,在探针触发时收集寄存器值等运行时信息。
当前状态#
规划中。