Как я могу отобразить значение типа по адресу с помощью WinDbg?

#windbg

#windbg

Вопрос:

У меня есть указатель на некоторую переменную, скажем, 0xffffffff’effffff77 типа struct Foo. Как я могу отобразить это значение с помощью WinDbg?

 dt 0xffffffff`ffffff77
Symbol not found at address ffffffffffffff77.
  

У меня не работает..

Комментарии:

1. Вы можете сделать dds 0xffffffffffffff77 , но на самом деле вам нужно знать / угадывать тип данных, чтобы выходные данные имели какой-либо смысл: msdn.microsoft.com/en-us/library/windows/hardware /…

2. Если у вас есть pdf-файлы, то вы можете сделать dt Foo 0xffffffffffffff77 или dt Foo. 0xffffffffffffff77 должны работать, в противном случае вам пришлось бы знать тип, а затем делать dds так, как я предложил

3. Если вы установили точку останова, и это значение является локальным, то dv будут сброшены локальные значения, и если вы загрузили PDF-файлы, то вы можете просто сделать dt Foo.mVar 0xffffffffffffff77 я думаю, должно сработать

4. принято. работает. Спасибо!

5. Должен ли я опубликовать это в качестве ответа?

Ответ №1:

Сообщение об ошибке указывает на то, что не удается найти символы, поэтому правильно задайте путь к символу с помощью графического интерфейса или .sympath mySymbols , а затем перезагрузите .reload

Теперь вы должны быть в состоянии сделать это:

 dt Foo 0xffffffff`ffffff77
  

или

 dt Foo. 0xffffffff`ffffff77
  

должно сработать, иначе вам пришлось бы знать тип, а затем делать dds , как я предложил

другая стратегия заключается в установке точки останова, и при попадании, если это локальная переменная, вы должны иметь возможность сбрасывать ее с помощью dv , затем она должна распознавать команды типа:

 dt Foo.mVar 0xffffffff`ffffff77
  

Ответ №2:

Адрес Ln — найти ближайший символ, символ Dt — показать переменную’