Visual Studio-Erweiterung für die Visualisierung des C++-Strukturspeicherlayouts
Laden Sie die neueste Version vom Visual Studio Marketplace 2022 herunter
Laden Sie die neueste Version vom Visual Studio Marketplace 2019 herunter
In C++ kann das Strukturlayout durch verschiedene Faktoren beeinflusst werden. Um leistungsstarken, auf den Datencache ausgerichteten Code zu erstellen oder den Speicherbedarf der Struktur zu reduzieren, ist es wichtig, die Klassenlayouts an derselben Stelle zu kennen, an der Code erstellt, aktualisiert, entfernt oder debuggt wird. Mit dieser Erweiterung können Programmierer ihre Strukturen innerhalb von Visual Studio mit nur einem Klick visualisieren.
Klicken Sie mit der rechten Maustaste auf eine beliebige C++-Strukturdefinition und wählen Sie Strukturlayout anzeigen (oder drücken Sie Alt+L ), um das Speicherlayout anzuzeigen.
In diesem Visualisierungsmodus werden die Typen mit untergeordneten Elementen gestapelt, um die Navigation hinein und heraus zu ermöglichen und ein besseres Gefühl für die Gesamtstruktur zu bekommen.
Der flache Modus überspringt alle Gruppen und zeigt nur eine Ebene an, wodurch eine kompaktere Ansicht entsteht.
Struct Layout kann verschiedene Systeme verwenden, um die C++-Dateien zu analysieren und die Speicherlayoutinformationen zu extrahieren. Abhängig von der Komplexität und den Besonderheiten des Build-Systems und der Visual Studio-Einrichtung ist eine Option praktischer als die anderen. Die verwendete Methode kann im Fenster „Erweiterungsoptionen“ geändert werden
Wenn eine Layout-Anfrage gestellt wird, führt die Erweiterung Folgendes aus:
Diese Methode verarbeitet den Dateispeicherort über eine ausführbare Datei von Clang LibTooling, die die aktuelle Datei und die Header analysiert. Diese Methode kann wirklich genaue Ergebnisse liefern, da sie die Daten direkt vom Clang AST abruft, benötigt aber den genauen Build-Kontext, um den gesamten Code richtig verstehen zu können.
Wenn eine Abfrage an das clang libtooling ausgelöst wird, versucht die Erweiterung, die folgenden Daten aus dem aktiven Projekt und der aktiven Konfiguration zu sammeln:
Diese Methode nutzt die Tatsache aus, dass die PDB (Programmdatenbank) höchstwahrscheinlich alle Layoutinformationen für alle benutzerdefinierten Typen enthält. Diese Anwendung verwendet das DIA SDK (Debug Interface Access), um die PDF-Datei zu öffnen und abzufragen. Dieses System kann nützlich sein, wenn unser Setup noch nicht für die Kompilierung mit einem Clang-Compiler bereit ist, das Build-System recht komplex ist und einige Eckfälle betrifft oder wir über MSVC-spezifischen Code verfügen. Die Einschränkung besteht darin, dass wir die Projekte kompilieren müssten, bevor wir Abfragen durchführen, um die PDBs auf dem neuesten Stand zu halten.
Dieses Projekt ist offen für Codebeiträge.
Wenn Sie diese Erweiterung nützlich fanden, können Sie mir jederzeit eine Tasse Kaffee spendieren.