揭開 Visual Studio 偵錯器神秘的命名約定
Visual Studio 的偵錯能力超越了表面,它使用編譯器產生的「魔術名稱」來管理各種程式實體。這些名稱雖然通常在使用者介面中隱藏,但可以實現高級偵錯功能和最佳化。 理解這些命名模式是有效導航調試器內部工作的關鍵。
雖然 Microsoft 沒有公開記錄完整的實作細節,但對 C# GeneratedNames.cs
原始碼的分析揭示了對這些命名約定的寶貴見解。請注意,這些約定如有更改,恕不另行通知。
隱藏變數與暫存:
-
未使用的局部變數:偵錯器使用
__Deleted$
後綴標記未使用的局部變量,這是編譯器最佳化的明確指示。 -
臨時變數: 臨時變數使用
CS$X$Y
命名方案:-
X
:表示暫時的性質(例如,0 表示短暫,1 表示回傳值,2 表示鎖定語句等)。 下面提供了完整的密鑰。 -
Y
:標識特定臨時實例的序號。
-
編譯器產生的特殊名稱:
編譯器為各種內部結構和操作產生唯一的名稱,包括:
- 迭代器狀態 (
state
) - 迭代器目前值 (
current
) - 迭代器參數與提升變數
- 迭代器閉包類別實例 (
locals
) - 快取的匿名方法委託 (
CachedAnonymousMethodDelegate
) - 迭代器實例 (
iterator
) - 匿名方法及其閉包類別 (
DisplayClass
) - 迭代器類別
- 固定緩衝區 (
FixedBuffer
) - 匿名型別 (
AnonymousType
,Field
,TPar
) - 自動屬性支援欄位 (
BackingField
) - 迭代器執行緒 ID
- 迭代器
finally
區塊 (Finally
) - 動態容器與呼叫網站(
SiteContainer
、Site
、SiteDelegate
) - COM 參考呼叫當地人 (
ComRefCallLocal
) - 鎖定取得追蹤 (
LockTaken
) - 臨時查詢表達式 (
TransparentIdentifier
)
神奇的名字公式:
這些魔法名稱的一般模式如下:P<n>C__SI</n>
,其中:
-
P
:CS$
快取委託和顯示類別實例的前綴;否則,空。 -
<n></n>
:原始變數名稱(如果適用)。 -
C
:表示實體類型的單一字元(1 到 s)。 -
S
:可選的描述性後綴。 -
I
:可選的唯一識別碼。
臨時變數類型鍵:
- 0:短暫的暫時對象
- 1:傳回臨時值
- 2:鎖定語句暫時
- 3:使用語句臨時變數
- 4:耐用的臨時件
- 5:Foreach 枚舉器結果
- 6:Foreach數組儲存
- 7:Foreach數組索引儲存
- 8-264:多維數組索引儲存
-
264:字串固定語句暫時
此詳細的細分可以讓您更清楚地了解在 Visual Studio 中偵錯時遇到的經常神秘的名稱。 請記住,此資訊是基於觀察,可能會隨著未來編譯器的更新而變化。
以上是Visual Studio 偵錯器的「神奇名稱」是什麼以及它們如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文解釋了C標準模板庫(STL),重點關注其核心組件:容器,迭代器,算法和函子。 它詳細介紹了這些如何交互以啟用通用編程,提高代碼效率和可讀性t

本文詳細介紹了c中有效的STL算法用法。 它強調了數據結構選擇(向量與列表),算法複雜性分析(例如,std :: sort vs. std vs. std :: partial_sort),迭代器用法和並行執行。 常見的陷阱

本文詳細介紹了C中的有效異常處理,涵蓋了嘗試,捕捉和投擲機制。 它強調了諸如RAII之類的最佳實踐,避免了不必要的捕獲塊,並為強大的代碼登錄例外。 該文章還解決了Perf

本文討論了使用C中的移動語義來通過避免不必要的複制來提高性能。它涵蓋了使用std :: Move的實施移動構造函數和任務運算符,並確定了關鍵方案和陷阱以有效

C 20範圍通過表現力,合成性和效率增強數據操作。它們簡化了複雜的轉換並集成到現有代碼庫中,以提高性能和可維護性。

本文討論了C中的動態調度,其性能成本和優化策略。它突出了動態調度會影響性能並將其與靜態調度進行比較的場景,強調性能和之間的權衡

文章討論了在C中有效使用RVALUE參考,以進行移動語義,完美的轉發和資源管理,重點介紹最佳實踐和性能改進。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver Mac版
視覺化網頁開發工具