Heim > Backend-Entwicklung > C++ > Wie kann ich auf Elemente eines std::vector in GDB zugreifen und diese drucken?

Wie kann ich auf Elemente eines std::vector in GDB zugreifen und diese drucken?

Patricia Arquette
Freigeben: 2024-10-28 01:43:02
Original
307 Leute haben es durchsucht

How Can I Access and Print Elements of a std::vector in GDB?

Zugriff auf Vektorelemente in GDB

Beim Debuggen von C-Code ist es wichtig, den Inhalt von Datenstrukturen zu untersuchen. Für einen std::vector kann dies in GDB eine besondere Herausforderung darstellen.

Adressierung von Vektorelementen

In GCC 4.1.2 ist das interne Array eines std:: Auf den Vektor kann über den Zeiger zugegriffen werden:

myVector._M_impl._M_start

wobei myVector der Name des Vektors ist.

Drucken von Vektorelementen

Um den gesamten std::vector Führen Sie mit dem Namen myVector den folgenden GDB-Befehl aus:

print *(myVector._M_impl._M_start)@myVector.size()
Nach dem Login kopieren

Dieser Befehl druckt alle Elemente im Vektor. Um nur die ersten N Elemente zu drucken, verwenden Sie:

print *(myVector._M_impl._M_start)@N
Nach dem Login kopieren

Erläuterung

Das Sternchen (*) wird verwendet, um den _M_start-Zeiger zu dereferenzieren, der auf den Anfang zeigt des internen Arrays. Das @-Symbol gibt die Anzahl der zu druckenden Elemente an.

Diese Methode ist versionabhängig und kann je nach Compilerversion variieren.

Das obige ist der detaillierte Inhalt vonWie kann ich auf Elemente eines std::vector in GDB zugreifen und diese drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage