Ошибка при использовании .ForEach в WinDbg - PullRequest
5 голосов
/ 02 августа 2011

Почему я получаю Invalid parameter poi(adr+4), когда запускаю следующую команду в WinDbg при отладке файла дампа?

.foreach ( adr { !dumpheap -mt 66df13d4 -short } ) { !do poi(adr+4); }

Следующее показывает, что значение adr заполняется просто отлично.

.foreach ( adr { !dumpheap -mt 66df13d4 -short } ) { .echo adr; }

Я хочу получить содержимое строковой переменной .NET, которая хранится с 4-м смещением System.Web.Caching.CacheEntry объекта.

1 Ответ

5 голосов
/ 02 августа 2011

Вы должны иметь пробелы около adr или использовать ${adr}.Это задокументировано в MSDN

Примечание Когда строка Переменная появляется в OutCommands , она должна бытьв окружении пробелов.Если он находится рядом с любым другим текстом - даже в скобках - он не будет заменен текущим значением токена, если вы не используете токен $ {} (Alias ​​Interpreter) .

...