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
310 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!

sumber:php.cn
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