# Writing a Debugger From Scratch - DbgRs Part 3 - Reading Memory

DevFeed: [Writing a Debugger From Scratch - DbgRs Part 3 - Reading Memory](<https://devfeed.tech/articles/writing-a-debugger-from-scratch-dbgrs-part-3-reading-memory-39735.md>)

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

Author: Tim Misiak

Published: 2023-03-28T17:14:19Z

Content type: tutorial

Language: en

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

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [github](<https://devfeed.tech/tags/github.md>), [memory](<https://devfeed.tech/tags/memory.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [rust](<https://devfeed.tech/tags/rust.md>)

## AI overview

Part 3 of a series implements memory inspection for a debugger written in Rust. It extends the command parser to handle numeric expressions and adds commands to evaluate expressions and display a hexadecimal memory dump at an evaluated address.

## Source excerpt

(New to this series? Consider starting from part 1) At the end of the last post, we had the ability to launch a program, step through instructions, and examine registers. We're still not quite at the point that we can call this a "debugger" but we're getting pretty close. In this part, we're going to start implementing functionality to examine the memory of the target process. You can see the full code for this post in the part3 branch on github.