Mencetak Elemen Vektor dalam C melalui GDB
Apabila menyahpepijat kod C dalam GDB, memeriksa kandungan std::vector boleh mencabar . Sebagai contoh, pertimbangkan std::vector
Dalam GCC 4.1.2, penyelesaiannya melibatkan mengakses penuding dalaman vektor, myVector._M_impl._M_start, yang menghala ke tatasusunan yang memegang elemen vektor.
Untuk mencetak keseluruhan vektor, gunakan:
print *(myVector._M_impl._M_start)@myVector.size()
Untuk mencetak hanya elemen N pertama, ubah suainya kepada:
print *(myVector._M_impl._M_start)@N
Penaakulan
Pendekatan ini memanfaatkan arahan GDB untuk mencetak N elemen tatasusunan bermula pada penunjuk tertentu. Dalam kes ini, penunjuk ialah myVector._M_impl._M_start, dan kami menentukan bilangan elemen untuk dicetak menggunakan myVector.size() atau kiraan yang dikehendaki N.
Walaupun pendekatan ini boleh digunakan untuk GCC 4.1.2 , ia mungkin berbeza bergantung pada versi pengkompil anda. Jadi, untuk versi lain, merujuk dokumentasi yang berkaitan adalah disyorkan.
Atas ialah kandungan terperinci Bagaimana untuk Mencetak Elemen Vektor dalam C Menggunakan GDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!