Вопрос

Я хотел бы изменить способ отображения некоторых типов с использованием либо «dt», либо '?? таким же, как вы можете сделать это с помощью AutoExp.dat.Есть ли способ сделать это?

Например, у меня есть примерно такая структура:


struct Foo
{
    union Bar
    {
       int a;
       void *p;
    } b;
};

И у меня есть массив из нескольких сотен таких элементов, и все они, как я знаю, указывают на структуру Bar.Есть ли способ сообщить cdb, что в этом выражении «p» является указателем на Bar?Это то, что вы можете сделать с помощью autoexp.(Конкретный пример: у меня есть таблица хранения, в которой могут быть ключи любого типа, но я знаю, что эти ключи являются строками.реализация хранит их как указатели void).

Заранее спасибо!

Это было полезно?

Решение

Я не думаю, что есть что-то более простое, чем autoexp.dat.

У вас есть несколько потенциальных вариантов: вы можете написать простой файл сценария с командами отладчика, чтобы выгружать структуру данных так, как вы хотите, и использовать "$<filename"команда (или один из ее вариантов).В сочетании с псевдонимами пользователей вы можете сделать это довольно простым и естественным в использовании.

Второй вариант немного сложнее, но с ним гораздо больше возможностей — напишите расширение DLL, которое выгружает вашу структуру данных.Для чего-то вроде того, о чем вы говорите, это, вероятно, излишество.Но у вас есть огромные возможности с расширениями отладчика (фактически, большая часть возможностей пакета инструментов отладки реализована именно таким образом).SDK поставляется вместе с отладчиком, поэтому легко определить, нужен ли он вам.

Другие советы

Ты можешь сказать du или da иметь это дамп памяти как строки Unicode или ascii.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top