有没有人知道是否有办法使用VS将一大块内存转储到磁盘?基本上,我想给它一个地址和一个长度,并让它将内存写入磁盘。这样我可以做二元差异。 感谢。
答案 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。但是,这将停止在零字节,所以如果你有二进制数据,这将无法工作。