Heim >Backend-Entwicklung >C++ >Wie drucke ich Elemente eines C-Vektors in GDB?

Wie drucke ich Elemente eines C-Vektors in GDB?

DDD
DDDOriginal
2024-10-27 19:53:30615Durchsuche

How to Print Elements of a C   Vector in GDB?

Elemente eines C-Vektors in GDB drucken

Beim Debuggen von C-Code in GDB müssen Sie möglicherweise den Inhalt eines Vektors untersuchen. Um dies mit einem Vektor aus ganzen Zahlen (std::vector) zu tun, führen Sie die folgenden Schritte aus:

Drucken des gesamten Vektors:

print *(myVector._M_impl._M_start)@myVector.size()

Dieser Ausdruck greift auf den Zeiger auf das interne Array des Vektors zu (_M_impl._M_start) und druckt die angegebene Anzahl von Elementen (myVector.size()).

Nur ​​die ersten N Elemente drucken:

print *(myVector._M_impl._M_start)@N

Ersetzen Sie N durch die Anzahl der Elemente, die Sie drucken möchten.

Erklärung:

  • Der Zeiger auf das interne Array ist gespeichert in _M_impl._M_start.
  • Der GDB-Befehl zum Drucken von N Elementen eines Arrays beginnend bei Zeiger P lautet: print P@N.
  • Die Gesamtgröße des Vektors kann mit myVector ermittelt werden .size().

Hinweis: Dieser Ansatz kann je nach Compilerversion variieren. Für GCC 4.1.2 wurde getestet, dass diese Methode effektiv funktioniert.

Das obige ist der detaillierte Inhalt vonWie drucke ich Elemente eines C-Vektors in GDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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