Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengakses dan Mencetak Elemen std::vektor dalam GDB?

Bagaimanakah Saya Boleh Mengakses dan Mencetak Elemen std::vektor dalam GDB?

Patricia Arquette
Lepaskan: 2024-10-28 01:43:02
asal
400 orang telah melayarinya

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

Mengakses Elemen Vektor dalam GDB

Apabila menyahpepijat kod C, adalah penting untuk memeriksa kandungan struktur data. Untuk std::vector, ini boleh menjadi sangat mencabar dalam GDB.

Mengatasi Elemen Vektor

Dalam GCC 4.1.2, tatasusunan dalaman std:: vektor boleh diakses melalui penuding:

myVector._M_impl._M_start

di mana myVector ialah nama vektor.

Mencetak Elemen Vektor

Untuk mencetak keseluruhan std::vector bernama myVector, laksanakan arahan GDB berikut:

print *(myVector._M_impl._M_start)@myVector.size()
Salin selepas log masuk

Arahan ini mencetak semua elemen dalam vektor. Untuk mencetak hanya elemen N pertama, gunakan:

print *(myVector._M_impl._M_start)@N
Salin selepas log masuk

Penjelasan

Asterisk (*) digunakan untuk membatalkan rujukan penuding _M_start, yang menunjuk ke permulaan daripada tatasusunan dalaman. Simbol @ menyatakan bilangan elemen untuk dicetak.

Kaedah ini bergantung pada versi dan mungkin berbeza dengan versi pengkompil yang berbeza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses dan Mencetak Elemen std::vektor dalam GDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan