内核源代码调试器项目规划#

在这里维护整个内核源代码调试器项目的目标分解和子项目设置信息。


这里的项目规划思路和规划依据是,开发人员的兴趣、周边的依赖条件成熟度、思路可行性和可能的应用需求评估等。

内核调试器框架#

  • 基于QEMU GDB的vscode调试插件:项目设想是,在QEMU环境下动态跟踪用户态和内核态代码执行,在特权级切换后更新符号表和断点设置信息。
  • 基于eBPF的内核调试器:项目设想是,在物理机器上利用eBPF机制跟踪用户模式、内核模式和虚拟机监控模式的代码执行状态和数据结构信息。
  • 远程调试器:项目设想是,实现一个远程控制和信息获取回路,支持对各种开发的远程操控,从而实现系统软件和IP核的开发。
    • 开发板类型:FPGA开发板、x86开发板、ARM开发板和RISC-V开发板等
    • 调试对象类型:应用程序、操作系统内核、虚拟机监控器、CPU软核

已完成的工作#

信息获取方法#

  • 不同内核的vscode调试插件适配:项目设想是,针对各种教学操作系统,提供内核调试支持。
    • rCore、StarryOS
    • xv6、uCore
  • Rust语言异步运行时下的函数栈分析:项目设想是,获取Rust语言异步函数执行过程中的函数调用信息,并分析函数调用逻辑