# Writing a Debugger From Scratch - DbgRs Part 8 - Source and Symbols

DevFeed: [Writing a Debugger From Scratch - DbgRs Part 8 - Source and Symbols](<https://devfeed.tech/articles/writing-a-debugger-from-scratch-dbgrs-part-8-source-and-symbols-39740.md>)

Original publisher: [Read original article](<https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-8/>)

Author: Tim Misiak

Published: 2024-05-29T15:50:13Z

Content type: tutorial

Language: en

Sources: [TimDbg](<https://devfeed.tech/sources/timdbg.md>)

Topics: [debug](<https://devfeed.tech/topics/debug.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [streams](<https://devfeed.tech/tags/streams.md>), [symbols](<https://devfeed.tech/tags/symbols.md>), [windows](<https://devfeed.tech/tags/windows.md>)

## AI overview

This installment of the DbgRs debugger series introduces source-level debugging through symbols, focusing on Windows PDB files. It explains how PDBs connect compiled code with source code and can contain function signatures, type definitions, local variables, and stream-based file data.

## Source excerpt

(New to this series? Consider starting from part 1) At the end of the last post, DbgRs gained the ability to disassemble the code that it was debugging. While disassembly is critical for many debugging tasks, using source code to step through the code line by line is usually more convenient when it's available. In this post we'll start looking at how to use symbols (PDB files on Windows) so that we can display the source for the code that's being debugged.