Visual Studio Extension pour la visualisation de la disposition de la mémoire de structure C++
Téléchargez la dernière version de Visual Studio Marketplace 2022
Téléchargez la dernière version de Visual Studio Marketplace 2019
En C++, la disposition de la structure peut être affectée par différents facteurs. Afin de produire du code orienté cache de données performant ou de réduire l'empreinte mémoire de la structure, il est important d'être conscient de la disposition des classes au même endroit où le code est créé, mis à jour, supprimé ou débogué. Cette extension permet aux programmeurs de visualiser leurs structures dans Visual Studio en 1 seul clic.
Cliquez avec le bouton droit sur n'importe quelle définition de structure C++ et sélectionnez Afficher la disposition de la structure (ou appuyez sur Alt+L ) afin de visualiser la disposition de la mémoire.
Dans ce mode de visualisation, les types avec enfants sont empilés afin de permettre la navigation entrante et sortante et d'avoir une meilleure idée de la structure globale.
Le mode plat ignore tous les groupes et affiche un seul calque, produisant une vue plus compacte.
Struct Layout peut utiliser différents systèmes pour analyser les fichiers C++ et extraire les informations de disposition de la mémoire. En fonction de la complexité et des bizarreries du système de build et de la configuration de Visual Studio, une option sera plus convaincante que les autres. La méthode utilisée peut être modifiée dans la fenêtre Options d'extension
Lorsqu'une demande de mise en page est effectuée, l'extension effectue les opérations suivantes :
Cette méthode traitera l'emplacement du fichier via un exécutable Clang LibTooling qui analysera le fichier actuel et les en-têtes. Cette méthode peut donner des résultats très précis car elle récupère les données directement à partir du Clang AST, mais elle aura besoin du contexte de construction exact pour pouvoir comprendre correctement tout le code.
Lorsqu'une requête adressée au clang libtooling est déclenchée, l'extension tentera de collecter les données suivantes à partir du projet actif et de la configuration :
Cette méthode tire parti du fait que la pdb (Program DataBase) contiendra très probablement toutes les informations de mise en page pour tous les types définis par l'utilisateur. Cette application utilise le SDK DIA (Debug Interface Access) pour ouvrir et interroger le pdb. Ce système peut être utile si notre configuration n'est pas prête à être compilée avec un compilateur Clang, si le système de construction est assez complexe dans certains cas particuliers ou si nous avons du code spécifique à MSVC. La mise en garde est que nous devrons compiler les projets avant d'effectuer des requêtes pour maintenir les pdbs à jour.
Ce projet est ouvert aux contributions de code.
Si vous avez trouvé cette extension utile, vous pouvez toujours m'offrir une tasse de café.