转储VS 2005中的部分内存

时间:2009-08-19 16:56:48

标签: c++ c debugging visual-c++ visual-studio-2005

有没有人知道是否有办法使用VS将一大块内存转储到磁盘?基本上,我想给它一个地址和一个长度,并让它将内存写入磁盘。这样我可以做二元差异。 感谢。

3 个答案:

答案 0 :(得分:3)

我有点惊讶VS不会让你从Memory转储窗口那样做......

您可以使用VS命令窗口获得所需(或接近它):

>Tools.LogCommandWindowOutput c:\temp\testdump.log /overwrite
>Debug.ListMemory /Count:16 0x00444B20
0x00444B20  00 00 00 00 00 00 00 00 13 00 12 00 86 07 19 00  ................
>Tools.LogCommandWindowOutput /off

如果您愿意使用WinDBG(或ntsd / cdb),可以使用.writemem调试器命令来完成您想要的操作。

答案 1 :(得分:0)

我相信你只能保存一个完整的二进制小型转储。但是,您可以使用“调试内存”窗口并复制/粘贴到文本文件以执行内存差异。

答案 2 :(得分:0)

好的,我在VS 2008中尝试过,但我相信VS 2005应该允许这样做:

如果内存是一个字符串(如果它不包含零字节),您可以将以下内容放入监视窗口:(unsigned char*)(ptr),1024以在文本可视化工具中查看1kB。但是,这将停止在零字节,所以如果你有二进制数据,这将无法工作。