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
print *(myVector._M_impl._M_start)@myVector.size()
Arahan ini mencetak semua elemen dalam vektor. Untuk mencetak hanya elemen N pertama, gunakan:
print *(myVector._M_impl._M_start)@N
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!