OS Debug#

适用于操作系统开发的源代码级调试工具

中长期目标:提供三项核心功能模块:

  • 面向OS的跨特权级源代码单步调试(OSGDB项目):在常规GDB中,当特权级切换时,原特权级代码中打的断点会失效,且无法在一个特权级运行时给另一个特权级代码打断点。
    • 完成情况:在内核代码和用户程序中同时设置断点,插件自动处理地址空间切换;支持Qemu、JTAG+星光2开发板调试;支持rCore和xv6,其他操作系统(如StarryOS、uCore等正在移植)
  • 面向基于Rust语言开发的异步(协程)程序(OS)调试(Async-Debuger项目):在异步执行逻辑中,常规GDB给出的物理调用栈相对异步函数的真实调用逻辑来说是乱序的。本工作旨在重建异步调用逻辑,在物理调用栈的基础上进一步给出异步函数、同步函数的逻辑调用栈
    • 完成情况:已实现基本功能,并在minimal-协程例子、以及linos(一种面向嵌入式设备的异步OS)上进行了测试和验证。
  • 基于ebpf的动态调试:结合GDB断点与插桩的方式,设计基于白名单的动态函数调用跟踪方法
    • 规划中。

快速链接#