在Visual Studio调试器中,如何从内存中打印一系列字节?

时间:2018-05-31 18:43:41

标签: c++ visual-studio debugging

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

我知道这样的命令存在,因为我以前曾经使用它,但是我不能为我的生活找到它。这就是我没有写下来的东西。

2 个答案:

答案 0 :(得分:4)

在深入研究一些文档之后,我找到了答案。我想要的命令是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
...  

答案 1 :(得分:2)

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

(p + start_pos),[items_count]