Building a Debugger : Write A Native X64 Debugger from Scratch 🔍
Sy Brand
No Starch Press, Incorporated, 2025
English [en] · EPUB · 19.2MB · 2025 · 📘 Book (non-fiction) · 🚀/lgli/lgrs · Save
description
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.
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.
Alternative filename
lgrsnf/Building_a_Debugger.epub
Alternative edition
United States, United States of America
Alternative description
in your day-to-day development.
Author Bio
Sy Brand is Microsoft’s C++ Developer Advocate. With more than 10 years’ experience in developer tooling, they’ve worked on profilers, compilers, language runtimes, standard libraries, and, of course, debuggers. They’ve also contributed to the standards for C++, DWARF, and HSA.
They graduated from the University of St Andrews with a 1st class degree in computer science, where they specialized in compiler implementation.
Outside the world of technology, they are a published poet, maker of experimental films and music, activist, and parent to three cats and one entire human.
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
Index
Author Bio
Sy Brand is Microsoft’s C++ Developer Advocate. With more than 10 years’ experience in developer tooling, they’ve worked on profilers, compilers, language runtimes, standard libraries, and, of course, debuggers. They’ve also contributed to the standards for C++, DWARF, and HSA.
They graduated from the University of St Andrews with a 1st class degree in computer science, where they specialized in compiler implementation.
Outside the world of technology, they are a published poet, maker of experimental films and music, activist, and parent to three cats and one entire human.
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
Index
date open sourced
2025-03-27
🚀 Fast downloads
Become a member to support the long-term preservation of books, papers, and more. To show our gratitude for your support, you get fast downloads. ❤️
- Fast Partner Server #1 (recommended)
- Fast Partner Server #2 (recommended)
- Fast Partner Server #3 (recommended)
- Fast Partner Server #4 (recommended)
- Fast Partner Server #5 (recommended)
- Fast Partner Server #6 (recommended)
- Fast Partner Server #7
- Fast Partner Server #8
- Fast Partner Server #9
- Fast Partner Server #10
- Fast Partner Server #11
- Fast Partner Server #12
🐢 Slow downloads
From trusted partners. More information in the FAQ. (might require browser verification — unlimited downloads!)
- Slow Partner Server #1 (slightly faster but with waitlist)
- Slow Partner Server #2 (slightly faster but with waitlist)
- Slow Partner Server #3 (slightly faster but with waitlist)
- Slow Partner Server #4 (slightly faster but with waitlist)
- Slow Partner Server #5 (no waitlist, but can be very slow)
- Slow Partner Server #6 (no waitlist, but can be very slow)
- Slow Partner Server #7 (no waitlist, but can be very slow)
- Slow Partner Server #8 (no waitlist, but can be very slow)
- Slow Partner Server #9 (no waitlist, but can be very slow)
- After downloading: Open in our viewer
All download options have the same file, and should be safe to use. That said, always be cautious when downloading files from the internet, especially from sites external to Anna’s Archive. For example, be sure to keep your devices updated.
External downloads
-
For large files, we recommend using a download manager to prevent interruptions.
Recommended download managers: JDownloader -
You will need an ebook or PDF reader to open the file, depending on the file format.
Recommended ebook readers: Anna’s Archive online viewer, ReadEra, and Calibre -
Use online tools to convert between formats.
Recommended conversion tools: CloudConvert and PrintFriendly -
You can send both PDF and EPUB files to your Kindle or Kobo eReader.
Recommended tools: Amazon‘s “Send to Kindle” and djazz‘s “Send to Kobo/Kindle” -
Support authors and libraries
✍️ If you like this and can afford it, consider buying the original, or supporting the authors directly.
📚 If this is available at your local library, consider borrowing it for free there.
Total downloads:
A “file MD5” is a hash that gets computed from the file contents, and is reasonably unique based on that content. All shadow libraries that we have indexed on here primarily use MD5s to identify files.
A file might appear in multiple shadow libraries. For information about the various datasets that we have compiled, see the Datasets page.
For information about this particular file, check out its JSON file. Live/debug JSON version. Live/debug page.