# Writing a Debugger From Scratch - DbgRs Part 4 - Exports and Private Symbols

DevFeed: [Writing a Debugger From Scratch - DbgRs Part 4 - Exports and Private Symbols](<https://devfeed.tech/articles/writing-a-debugger-from-scratch-dbgrs-part-4-exports-and-private-symbols-39736.md>)

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

Author: Tim Misiak

Published: 2023-05-29T22:28:40Z

Content type: tutorial

Language: en

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

Topics: [Code](<https://devfeed.tech/topics/code.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [modules](<https://devfeed.tech/tags/modules.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [portable-executable](<https://devfeed.tech/tags/portable-executable.md>), [process](<https://devfeed.tech/tags/process.md>), [windows](<https://devfeed.tech/tags/windows.md>)

## AI overview

Part 4 of a series on writing a debugger from scratch explains how to inspect a target process for loaded modules, exports, and private symbols. It covers tracking modules, mapping addresses to names, and beginning to parse Windows Portable Executable files.

## Source excerpt

(New to this series? Consider starting from part 1) At the end of the last post, we had the ability to read memory out of the target process, but we still had very little in the way of interpreting the data in that process. That changes in this post, where we will start grabbing useful information out of the target, including modules, exports, and even private symbols. The code for this post is in the part4 branch on github.