Jika Anda memiliki array yang dialokasikan secara statis, debugger Visual Studio dapat dengan mudah menampilkan semua elemen array. Namun, jika Anda memiliki array yang dialokasikan secara dinamis dan diarahkan oleh sebuah pointer, array hanya akan menampilkan elemen pertama dari array ketika Anda mengklik + untuk mengembangkannya. Apakah ada cara mudah untuk memberi tahu debugger, tunjukkan data ini kepada saya sebagai array tipe Foo dan ukuran X?
c++
c
visual-studio
debugging
Adam Rosenfield
sumber
sumber
Ada dua metode untuk melihat data dalam array m4x4:
Salah satu caranya adalah dengan jendela Watch (Debug / Windows / Watch). Tambahkan arloji =
Ini menampilkan data dalam daftar:
Cara lain adalah dengan jendela Memory (Debug / Windows / Memory). Tentukan alamat mulai memori =
Ini menampilkan data dalam sebuah tabel, yang lebih baik untuk matriks dua dan tiga dimensi:
Klik kanan pada jendela Memori untuk menentukan bagaimana data biner divisualisasikan. Pilihan terbatas pada bilangan bulat, float, dan beberapa penyandian teks.
sumber
Di jendela arloji, tambahkan koma setelah nama array, dan jumlah item yang ingin ditampilkan.
sumber
kunjungan kembali:
mari kita asumsikan Anda memiliki pointer di bawah ini:
maka Anda dapat menulis di bawah ini di Visual Studio debug watch:
yang akan melemparkannya ke dalam array seperti di bawah ini, dan Anda dapat melihat semua konten sekaligus.
sumber
Untuk,
tambahkan ini untuk ditonton
sumber
Namun cara lain untuk melakukan ini ditentukan di sini di MSDN .
Singkatnya, Anda dapat menampilkan array karakter sebagai beberapa jenis string. Jika Anda memiliki array yang dinyatakan sebagai:
Anda dapat mencetaknya sebagai string unicode di jendela arloji dengan berikut:
Lihat tabel di halaman MSDN untuk semua konversi berbeda yang mungkin karena ada beberapa. Banyak varian string berbeda, varian untuk mencetak masing-masing item dalam array, dll.
sumber
a,[10]
memungkinkan Anda untuk melihat elemen individual sehingga mereka sendiri dapat diperluas, bahkan jika Anda memiliki CArray tipe data yang kompleks.Untuk array MFC (CArray, CStringArray, ...) mengikuti tautan selanjutnya di Tip # 4-nya
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debug-Tips-for-Native-De
Misalnya untuk "CArray pArray", tambahkan jendela Watch
untuk melihat 5 elemen pertama.
Jika pArray adalah CArray dua dimensi, Anda dapat melihat salah satu elemen dari dimensi kedua menggunakan sintaks berikut:
sumber
Anda dapat menemukan daftar banyak hal yang dapat Anda lakukan dengan variabel di jendela arloji dalam permata ini di dokumen: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx
Untuk variabel a, ada hal-hal yang sudah disebutkan dalam jawaban lain seperti
tetapi ada banyak penentu lain untuk format dan ukuran, seperti:
sumber
Saya belum menemukan cara untuk menggunakan ini dengan array multidimensi. Tapi Anda setidaknya bisa (jika Anda tahu indeks entri yang Anda inginkan) menambahkan arloji ke nilai tertentu. Cukup gunakan indeks-operator.
Untuk Array bernama arus, yang memiliki Array bernama Attribs di dalamnya, yang memiliki Array bernama Attrib di dalamnya, akan terlihat seperti ini jika Anda ingin posisi 26:
Anda juga dapat menggunakan offset
akan menampilkan 25 elemen berikutnya. (Saya menggunakan VS2008, ini hanya menunjukkan maksimum 25 elemen).
sumber