用於 C++ 結構記憶體佈局視覺化的 Visual Studio 擴充
從 Visual Studio Marketplace 2022 下載最新版本
從 Visual Studio Marketplace 2019 下載最新版本
在 C++ 中,結構佈局可能會受到不同因素的影響。為了產生面向資料快取的高效能程式碼或減少結構記憶體佔用,了解建立、更新、刪除或偵錯程式碼的相同位置的類別佈局非常重要。此擴充功能允許程式設計師只需單擊 1 次即可在 Visual Studio 中視覺化其結構。
右鍵單擊任何 C++ 結構定義頂部並選擇“顯示結構佈局” (或按Alt+L )以可視化內存佈局。
在這種視覺化模式中,帶有子項的類型被堆疊起來,以便允許導航進出並更好地了解整體結構。
平面模式會跳過所有群組並僅顯示一層,從而產生更緊湊的視圖。
Struct Layout可以使用不同的系統來解析C++檔案並提取記憶體佈局資訊。根據建置系統和 Visual Studio 設定的複雜性和怪癖,其中一個選項將比其他選項更方便。可以在擴充選項視窗中變更所使用的方法
當發出佈局請求時,擴充功能將執行以下操作:
此方法將透過 Clang LibTooling 執行檔處理檔案位置,該執行檔將解析目前檔案和標頭。此方法可以提供非常準確的結果,因為它直接從 Clang AST 檢索數據,但它需要精確的構建上下文才能正確理解所有程式碼。
當觸發對 clang libtooling 的查詢時,擴充功能將嘗試從活動項目和配置中收集以下資料:
此方法利用了以下事實:pdb(程式資料庫)很可能包含所有使用者定義類型的所有佈局資訊。該應用程式使用DIA SDK(調試介面存取)來開啟和查詢pdb。如果我們的設定尚未準備好使用 Clang 編譯器進行編譯,建置系統非常複雜,會遇到一些極端情況,或者我們有一些 MSVC 特定程式碼,則該系統可能會很有用。需要注意的是,我們需要在執行任何查詢之前編譯項目,以保持 pdb 最新。
該項目對程式碼貢獻開放。
如果您發現此擴充功能有用,您可以隨時為我買一杯咖啡。