Question

Je voudrais changer la façon dont certains types sont affichés en utilisant soit « dt » ou « ?? » d'une manière similaire à la façon dont vous pouvez le faire avec autoexp.dat. Est-il possible de le faire?

Par exemple, j'ai une structure quelque chose comme ceci:


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

Et j'ai un tableau de quelques centaines d'entre eux, tous que je connais le point à une structure Bar. Est-il possible de dire cdb que, dans cette expression de toute façon, que « p » est un pointeur vers Bar? C'est le genre de chose que vous pourriez faire avec autoexp. (L'exemple concret est ici que j'ai un stashtable qui peut avoir des clés de tout type, mais je sais qu'ils sont des chaînes clés. La mise en œuvre les stocke comme pointeurs vides).

Merci d'avance!

Était-ce utile?

La solution

Je ne pense pas qu'il y ait quoi que ce soit aussi simple que autoexp.dat.

Vous avez un couple d'options possibles - vous pouvez écrire un simple fichier de script avec le débogueur commandes pour vider la structure de données de la manière que vous voulez et utilisez la commande « $<filename » (ou une de ses variantes). Combiné avec des alias utilisateur que vous pouvez obtenir ce pour être assez facile et naturel à utiliser.

La deuxième option est un peu plus impliqué, mais il est beaucoup plus de puissance - écrire une DLL d'extension qui dumps votre structure de données. Pour quelque chose comme ce que vous parlez de ce qui est probablement exagéré. Mais vous avez le pouvoir immense avec des extensions de débogueur (en fait, une grande partie de la puissance qui vient dans le paquet d'outils de débogage est mis en œuvre de cette façon). Le SDK est fourni avec le débogueur, il est donc facile de déterminer si c'est ce que vous pourriez avoir besoin.

Autres conseils

Vous pouvez dire ou du da de l'avoir Vidage mémoire sous forme de chaînes unicode ou ascii.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top