Ekstensi Visual Studio untuk visualisasi tata letak memori struct C++
Unduh terbaru dari Visual Studio Marketplace 2022
Unduh terbaru dari Visual Studio Marketplace 2019
Di C++, tata letak struktur dapat dipengaruhi oleh berbagai faktor. Untuk menghasilkan kode berorientasi cache data yang berkinerja baik atau mengurangi jejak memori struktur, penting untuk menyadari tata letak kelas di tempat yang sama di mana kode dibuat, diperbarui, dihapus, atau di-debug. Ekstensi ini memungkinkan pemrogram untuk memvisualisasikan strukturnya dalam Visual Studio hanya dengan 1 klik.
Klik kanan di atas definisi struct C++ mana pun dan pilih Show Struct Layout (atau tekan Alt+L ) untuk memvisualisasikan tata letak memori.
Dalam mode visualisasi ini, tipe dengan anak ditumpuk untuk memungkinkan navigasi masuk dan keluar serta mendapatkan pemahaman yang lebih baik tentang struktur keseluruhan.
Mode datar melewati semua grup dan hanya menampilkan satu lapisan, sehingga menghasilkan tampilan yang lebih ringkas.
Struct Layout dapat menggunakan sistem yang berbeda untuk mengurai file C++ dan mengekstrak informasi tata letak memori. Bergantung pada kompleksitas dan kekhasan sistem pembangunan dan pengaturan Visual Studio, satu opsi akan lebih meyakinkan daripada yang lain. Metode yang digunakan dapat diubah di Jendela Opsi Ekstensi
Ketika permintaan Tata Letak dibuat, ekstensi melakukan hal berikut:
Metode ini akan memproses lokasi file melalui executable Clang LibTooling yang akan mengurai file dan header saat ini. Metode ini dapat memberikan hasil yang sangat akurat karena mengambil data langsung dari Clang AST tetapi memerlukan konteks build yang tepat agar dapat memahami semua kode dengan benar.
Ketika kueri ke clang libtooling dipicu, ekstensi akan mencoba mengumpulkan data berikut dari proyek dan konfigurasi aktif:
Metode ini memanfaatkan fakta bahwa pdb (Program DataBase) kemungkinan besar akan berisi semua informasi tata letak untuk semua tipe yang ditentukan pengguna. Aplikasi ini menggunakan DIA SDK (Debug Interface Access) untuk membuka dan menanyakan pdb. Sistem ini dapat berguna jika pengaturan kita belum siap untuk dikompilasi dengan kompiler Clang, sistem pembangunannya cukup rumit mengenai beberapa kasus sudut atau kita memiliki beberapa kode khusus MSVC. Peringatannya adalah kita perlu mengkompilasi proyek sebelum melakukan pertanyaan apa pun agar pdb tetap mutakhir.
Proyek ini terbuka untuk kontribusi kode.
Jika menurut Anda ekstensi ini bermanfaat, Anda selalu dapat membelikan saya secangkir kopi.