Моя цель - сохранить имя класса объекта с именем this
, найденного в локальных элементах фрейма. Когда вы смотрите на эту последовательность команд, я нарушаю некоторые синтаксические правила Windbg, которые означают, что команда as
, похоже, не выдает никакой ошибки, но также не устанавливает псевдоним как I хотел бы?
Это немного смущает меня, потому что псевдоним был явно установлен в изолированной команде .foreach
, которую я использовал ранее, и теперь я просто вкладываю это (хотя я также пытался as /c
в сочетании с .printf
) дальше ...
0:133> ad /q *
0:133> al
No aliases
0:133> .foreach /pS 1 /ps 4 (Token {dv /t this}) { as myClass Token }
0:133> al
Alias Value
------- -------
myClass foo
0:133> ad /q *
0:133> al
No aliases
0:133> !for_each_local .if ($spat ("@#Local","this") == 1) { .foreach /pS 1 /ps 4 (Token { dv /t this }) { .printf "${Token}\n" } }
foo
0:133> !for_each_local .if ($spat ("@#Local","this") == 1) { .foreach /pS 1 /ps 4 (Token { dv /t this }) { as myClass Token } }
0:133> al
No aliases
0:133> !for_each_local .if ($spat ("@#Local","this") == 1) { .foreach /pS 1 /ps 4 (Token { dv /t this }) { as /c myClass .printf "${Token}" } }
0:133> al
No aliases
Похоже на сложность as
, я тоже могу счастливо использовать .echo ${Token}
, но я не могу использовать as
с ${Token}
. Я пробовал комбинации aS
и точки с запятой безрезультатно, и я уверен это просто вопрос синтаксиса, и это задокументировано, но я больше не вижу дрова для деревьев.
Последняя попытка, я пытался - !for_each_local .if ($spat ("@#Local","this") == 1) { .foreach /pS 1 /ps 4 (Token { dv /t this }) { as /c myClass .echo ${Token} } }
- Ба !!!