Maison >développement back-end >C++ >Comment puis-je accéder et imprimer les éléments d'un std :: vector dans GDB ?
Accès aux éléments vectoriels dans GDB
Lors du débogage du code C, il est crucial d'examiner le contenu des structures de données. Pour un std::vector, cela peut être particulièrement difficile dans GDB.
Adressage des éléments vectoriels
Dans GCC 4.1.2, le tableau interne d'un std:: Le vecteur est accessible via le pointeur :
myVector._M_impl._M_start
où myVector est le nom du vecteur.
Impression d'éléments vectoriels
Pour imprimer l'intégralité d'un std::vector
print *(myVector._M_impl._M_start)@myVector.size()
Cette commande imprime tous les éléments du vecteur. Pour imprimer uniquement les N premiers éléments, utilisez :
print *(myVector._M_impl._M_start)@N
Explication
L'astérisque (*) permet de déréférencer le pointeur _M_start, qui pointe vers le début du tableau interne. Le symbole @ spécifie le nombre d'éléments à imprimer.
Cette méthode dépend de la version et peut varier selon les différentes versions du compilateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!