Pergunta

Eu gostaria de mudar a forma como alguns tipos são exibidos usando 'dt' ou '??' de uma forma semelhante à forma como você pode fazer isso com autoexp.dat. Existe uma maneira de fazer isso?

Por exemplo, eu tenho uma estrutura algo como isto:


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

E eu tenho um conjunto de algumas centenas deles, todos os quais eu sei que apontam para uma estrutura de Bar. Existe alguma maneira de dizer cdb que, neste expressão de qualquer maneira, que 'p' é um ponteiro para Bar? Este é o tipo de coisa que você poderia fazer com autoexp. (O exemplo concreto aqui é que eu tenho um stashtable que pode ter chaves de qualquer tipo, mas eu sei que eles chaves são strings. As lojas de implementação los como ponteiros void).

Agradecemos antecipadamente!

Foi útil?

Solução

Eu não acho que haja algo tão simples como autoexp.dat.

Você tem algumas opções potenciais casal - você pode escrever um script simples com os comandos do depurador para despejar a estrutura de dados da maneira que você quer e use o comando "$<filename" (ou uma de suas variantes). Combinado com aliases de usuários você pode obter este para ser muito fácil e natural para uso.

A segunda opção é um pouco mais envolvidos, mas com ele vem muito mais poder - escrever uma extensão DLL que despeja sua estrutura de dados. Para algo parecido com o que você está falando sobre isso é provavelmente um exagero. Mas você tem imenso poder com extensões de depurador (na verdade, muito do poder que vem no pacote de ferramentas de depuração é implementado desta maneira). O SDK é embalado com o depurador, por isso é fácil de determinar se é isso que você pode precisar.

Outras dicas

Você pode dizer du ou da para tê-lo memória despejo como Unicode ou ASCII strings.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top