Debugger Visualizer ("Autoexp.dat") et héritage
Bonjour,
Je travail actuellement sur un assez gros projet pour lequel je souhaite tirer profit des debugger visualizers afin de me simplifier la vie.
J'ai écarté la solution des NatViz de Visual Studio car bien que le projet soit majoritairement en C++, il y a un module de script managé qui m'impose de faire un choix : avoir le droit déboguer le script et perdre NatViz ou l'inverse ... dommage.
De même, le plugin EEAddin n'a pas retenu mon attention, plus d'une soirée pour ne pas réussir à le faire fonctionner et de ce que j'ai vu du code, je n'ai pas vraiment envie de lire la mémoire manuellement.
Reste donc le fichier "AutoExp.dat" qui jusqu'à présent à l'air de répondre à mes attentes. Néanmoins, il y a une question que je n'arrive pas à résoudre : Comment reproduire l'affichage de l'héritage de la même manière que les visualizers classiques ?
Par exemple, j'ai deux classes :
Code:
1 2 3 4 5 6 7 8 9 10
|
class A {
public:
int integerValue;
};
class B : public A {
public:
double doubleValue;
}; |
J'aimerais pouvoir faire en sorte que le visualizer s'affiche avec les différents niveau d'héritage. J'ai testé ce genre de solution mais sans succès :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
A {
children (
#(
int: $c.integerValue
)
)
}
B {
children (
#(
double: $c.doubleValue,
[A]: (A*)$c
)
)
} |
J'ai essayé différentes notations mais sans succès. Alors que pour l'affichage brute, cela fonctionne :
Code:
1 2 3
|
[$c,!] // Affichage brute en tant que B*
[(A*)$c,!] // Affichage brute en tant que A* |
Si l'un de vous à une idée, cela m’intéresse car redéfinir l'affichage des membres hérités pour chacune des classes du projet risque de prendre beaucoup de temps et question maintenabilité, c'est pas terrible :aie:
Merci d'avance