Debugging Kernel and User Space Synchronously Based on GDB
Debugging operating systems running on multiple privilege levels is challenging due to symbol table inconsistencies caused by context switching. Conventional debuggers fail to manage breakpoints and symbol tables when the OS transitions between kernel and multiple user processes. To address this, we propose a debugging method based on breakpoint groups and their switching automation. By grouping and caching breakpoints and dynamically switching to the working breakpoint group, our method ensures consistent debugging across different execution environments. Experiments on RISC-V hardware and QEMU confirm the effectiveness of the method in debugging OSes like xv6 (written in C) and Starry (written in Rust and C). This work offers a practical and portable solution for cross-privilege-level and multi-process debugging in both academic and real-world OS development.
Authors
- Jingbang Wu (ORCID: https://orcid.org/0000-0002-1394-5631)
- Yifan Zhang (ORCID: https://orcid.org/0009-0005-6403-2161)
- Zhiyang Chen (ORCID: https://orcid.org/0009-0002-8460-2633)
- Hongyuan Wang (ORCID: https://orcid.org/0000-0002-6144-6431)
- Yaqi Yang
Institutions
- Beijing Technology and Business University (CN)
- Beijing University of Technology (CN)
Publication Details
- Published
- 2025-04-25
- DOI
- https://doi.org/10.1109/iccea65460.2025.11103326
- Primary Topic
- Distributed and Parallel Computing Systems
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- National Natural Science Foundation of China