Je voudrais changer la façon dont certains types sont affichés en utilisant 'dt' ou '??' d'une manière similaire à la façon dont vous pouvez le faire avec autoexp.dat. Y a-t-il un moyen de faire cela?est-ce que cdb/windbg a un équivalent à autoexp.dat?
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. Y at-il un moyen de dire à cdb que, dans cette expression de toute façon, ce 'p' est un pointeur sur Bar? C'est le genre de chose que vous pourriez faire avec autoexp. (L'exemple concret ici est que j'ai une stashtable qui peut avoir des clés de n'importe quel type, mais je sais que les clés sont des chaînes, l'implémentation les stocke comme des pointeurs vides).
Merci d'avance!
Si j'ai un tableau qui a un élément pointant vers une chaîne qui est ailleurs dans la mémoire, puis-je invoquer 'da' sur l'adresse de ce pointeur dans le cadre de l'impression du tableau? – aaron
Si vous connaissez l'adresse de début du tableau, vous devriez être capable de calculer le décalage de l'adresse de départ à l'élément que vous voulez (sizeof (struct) * i) et ensuite ajouter le décalage de l'élément (DWORD aligné) dans le struct. Vous pouvez également faire dt -r sur l'adresse de la structure pour que le débogueur vorte récursivement tous les membres. –