Master the inner workings of your x64 Linux system and expand your OS expertise by writing your very own debugger using C++. If debuggers seem like magic to you, there is no better way to demystify them than to write your own. This book will show you exactly how to do it, walking you through the entire process of building a debugger for x64 Linux systems using C++. As you go from an empty filesystem folder to a fully fledged debugger capable of setting breakpoints, stepping through code, manipulating variables, and more, you’ll learn how to: Attach to a process Read and write to registers Set hardware and software breakpoints Output disassembly Support multithreading and other tasks As you add features to your debugger, you’ll also pick up a wealth of knowledge about operating systems, compilers, software testing, and low-level programming that you can use in your day-to-day development. Table of contents Chapter 1: Project Setup Chapter 2: Compilation and Computer Architecture Chapter 3: Attaching to a Process Chapter 4: Pipes, procfs, and Automated Testing Chapter 5: Registers Chapter 6: Testing Registers with x64 Assembly Chapter 7: Software Breakpoints Chapter 8: Memory and Disassembly Chapter 9: Hardware Breakpoints and Watchpoints Chapter 10: Signals and Syscalls Chapter 11: Object Files Chapter 12: Debug Information Chapter 13: Line Tables Chapter 14: Source-Level Breakpoints and Stepping Chapter 15: Call Frame Information Chapter 16: Stack Unwinding Chapter 17: Shared Libraries Chapter 18: Multithreading Chapter 19: DWARF Expressions Chapter 20: Variables and Types Chapter 21: Expression Evaluation Chapter 22: Advanced Topics Appendix: Check Your Knowledge Answers Glossary
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tags
Text Preview (First 20 pages)
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
Generating text preview…
Loading comments...
Reply to Comment
Edit Comment