Я пытаюсь найти выражение командной строки WinDbg, которое выводит результат команды !DumpHeap
и для каждого адреса считывает 64-битное значение из смещения 0x08
после адрес. Я думаю, что это возможно (не уверен в этом), но каждая попытка, которую я сделал до сих пор, не с некоторой ошибкой.Итерация через! Вывод DumpHeap для чтения значения при смещении памяти
Я много искал, но большинство статей WinDbg показывают простые примеры, которые я могу попробовать, но мои попытки потерпят неудачу.
У меня есть дамп процесса рабочего процесса ASP.NET. Процесс имеет некоторый рост памяти, но нет ясного нарушителя, поэтому я пытаюсь перечислить несколько объектов, которые появляются много раз в памяти. Я использую sos.dll для управляемых отладочных расширений WinDbg.
Вот что я пытаюсь сделать
.foreach(myaddress {!dumpheap -short -mt 000007fe998adea8})
{r @$t0=poi(myaddress+0x8);!do @$t0;.echo ************* myaddress}
отметить, что приведенная выше команда должна быть на одной линии - я только добавил разрыв строки для лучшей читаемости здесь.
Для указанной выше строки WinDbg печатает эту ошибку: Couldn't resolve error at 'myaddress+0x8);!do @$t0;.echo ************* 00000001003cb870'
.
Я пытаюсь выполнить итерацию по всем адресам, возвращаемым !DumpHeap
- каждый адрес должен перейти в переменную myaddress
. Затем для каждого адреса я пытаюсь установить регистратор $t0
на значение, считанное с myaddress+0x8
. Команда !do
(!DumpObject
) затем сбрасывает объект по этому адресу.
Если я запускаю только (снова, на одной строке в WinDbg):
.foreach(myaddress {!dumpheap -short -mt 000007fe998adea8})
{!do myaddress;.echo ************* myaddress}
Я получаю список объектов свалках, но это один уровень выше, чем то, что мне нужно. Я хочу углубиться на один уровень глубже и сбросить определенный член этих объектов верхнего уровня, которые я выполняю.
Возможно ли это, или я ошибаюсь с этим?
возможный дубликат [ Как отображать управляемые объекты с определенным значением в одном из полей в WinDbg с использованием SOS (или SOSEX)?] (Http://stackoverflow.com/questions/20765713/how-to-display-managed-objects-with-certain- value-in-one-of-the-fields-in-windbg) –
@ ᵺṓᵯ ᵴ Да, это может быть дубликатом. – xxbbcc