Дамп только часть памяти в VS 2005 - PullRequest
2 голосов
/ 19 августа 2009

Кто-нибудь знает, есть ли способ вывести на диск только часть памяти с помощью VS? По сути, я хочу дать ему адрес и длину и записать память на диск. Таким образом, я могу сделать бинарный diff. Спасибо.

Ответы [ 3 ]

3 голосов
/ 20 августа 2009

Я немного удивлен, что VS не позволит вам сделать это из окна дампа памяти ...

Вы можете получить то, что хотите (или близко к нему), с помощью командного окна 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, чтобы сделать именно то, что вы хотите.

0 голосов
/ 19 августа 2009

ОК, это я пробовал в VS 2008, но я считаю, что VS 2005 должен разрешить то же самое:

Если память представляет собой строку (если она не содержит нулевых байтов), вы можете поместить в окно просмотра следующее: (unsigned char*)(ptr),1024, чтобы увидеть 1 КБ в визуализаторе текста. Однако это останавливается на нулевых байтах, поэтому, если у вас есть двоичные данные, это не сработает.

0 голосов
/ 19 августа 2009

Полагаю, вы можете сохранить только полный двоичный мини-дамп. Однако вы можете использовать окно «Отладочная память» и скопировать / вставить в текстовый файл, чтобы сделать различия в памяти.

...