在 Visual Studio 调试器中,如何打印内存中的字节范围?

Ale*_*erg 6 c++ debugging visual-studio

我需要从正在调试的应用程序的内存中提取特定字节宽度的数据结构,最好采用一系列十六进制对的形式。我想从 Visual Studio 调试器中的命令或立即窗口获取此数据。我可以通过 db 命令在 Windbg 中实现此目的,但我无法找到 Visual Studio 的特定命令。Debug.Print 是不够的,因为它一遇到空字符就停止打印。

我知道这样的命令存在,因为我以前使用过它,但我一生都找不到它。这就是我没有把事情写下来所得到的结果。

Ale*_*erg 7

在深入研究一些文档后,我找到了这个问题的答案。我想要的命令是Debug.ListMemory ,它是d命令的别名。以十六进制对打印字节的命令具体为db /Count:[要打印的字节数] [内存地址]

>db /Count:1686 0x0000021f7102d4d0
0x0000021F7102D4D0  48 72 2f 50 73 36 68 75 4e 6c 59 44 44 56 33 33  
0x0000021F7102D4E0  38 78 37 4f 55 65 6c 62 6c 6f 51 78 77 66 4e 68  
0x0000021F7102D4F0  35 73 4e 35 42 68 4d 67 54 7a 6e 35 6d 36 52 41
...  
Run Code Online (Sandbox Code Playgroud)


use*_*670 3

假设这p是一个指向字节数组的指针,您可以像这样输入 watch :

(p + start_pos),[items_count]
Run Code Online (Sandbox Code Playgroud)