This project aims at describing how to develop a (symbolic) golang debugger, like gdb or dlv. Why we do this?
The purpose of this project isn't only finishing developping a golang debugger, it focuses on how-to develop rather than the final implemention. The contents covered may include CPU, CPU Instruction Set, Operating System, ELF, Compiler and Linker, Debugging Information Standards, Debugger, Language Design Internals, etc.
In a word, we want to use developping a symbolic golang debugger as a chance to introduce how CPU, OS, ELF, Compiler and Linker, Debugger coordinate with each others. Besides, we can also inspect the design internals of go programming language.
Thanks to the contributors of gdb, delve, DWARF, etc. I learned a lot from them. Now I want to share the knowledge.
Our work will be around with github.com:
- come up with ISSUE
- discuss the ISSUE
- fork the project, develop, test, fix, create a PR
- review PR and merge
- tag and release
Welcome you to contribute to this book and share them.