Je frappe un mur pendant le débogage de ma classe C++. Il est un graphique de toutes sortes, quelque chose comme ceci:Affichage "superficiel" des conteneurs STL en mode de débogage Visual Studio?
class Graph {
class Node {
std::map<int, Node>::iterator _neighbors[4];
};
std::map<int, Node> _map;
};
Fondamentalement, chaque noeud conserve la trace des voisins exactement 4 en stockant itérateurs à eux dans la classe contenant carte.
Le problème est que quand je vais afficher le contenu de _MAP dans VS2008 pendant le débogage, je reçois quelque chose comme ceci:
- _map
- [0]
first
- second
- _neighbors
- _ptr
first
- second
- _neighbors
- _ptr
first
- second
- _neighbors
...
Apparemment, au lieu d'énumérer les 4 voisins du nœud avec index 0 la carte, elle liste son premier voisin, puis le premier voisin du premier voisin, puis son premier voisin et ainsi de suite ad infinity. En outre, à aucun moment, _neighbors
n'apparaît sous forme de tableau, même s'il est déclaré comme tel.
J'ai trouvé un add-on appelé VSEDebug censé avoir un affichage STL amélioré, mais c'est pour VS2k3 et je n'ai pas pu le faire fonctionner en 2k8 (ni les binaires, ni la compilation moi-même).
La fenêtre immédiate n'est pas beaucoup d'aide non plus, comme essayer d'appeler _map.operator[]
renvoie avec CXX0058: Error: overloaded operator not found
.
Des idées comment je peux obtenir un affichage significatif du contenu de ma carte? Notez que je suis assez nouveau pour VS dans son ensemble, donc j'ai probablement besoin d'instructions détaillées. :)
duplication possible: http://stackoverflow.com/questions/104959/what-is-the-best-way-to-inspect-stl-containers-in-visual-studio-debugging –
VS 2008 pour moi montre des cartes très gentiment. – sbi