Preface
I have a strong curiosity and enjoy getting to the root of things. I started learning Go in 2018, and during my learning phase, I used debuggers like gdb and delve extensively for debugging and analysis. One day, I suddenly wondered: how do debuggers work?
If you just want to understand the general working principles of a debugger, that's relatively simple. But if you want to be competent in debugger development, especially developing a new debugger from scratch, that's a completely different matter.
The design, implementation, and debugging information standards of debuggers are also a very complex engineering project. I hope to glimpse its mysteries and help deepen my understanding of the software development toolchain. During my learning process, I also realized this is a direction with strong practical significance, high technical content, and helps consolidate and improve software developers' knowledge system from multiple aspects. Therefore, I hope to complete this project in my spare time and share it with everyone.
Due to my limited capabilities, there may be errors or omissions. I hope readers can help point out issues and assist in corrections.