內容運算子 (C/C++ 語言的運算式)
這個主題適用於:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
僅適用原生 |
||||
Pro、Premium 和 Ultimate |
僅適用原生 |
內容運算子為原生的偵錯工具所提供的額外運算子。 在偵錯機器碼時,您可使用內容運算子來限定中斷點位置、變數名稱或運算式:
{[function],[source],[module] } location
{[function],[source],[module] } variable_name
{[function],[source],[module] } expression
大括號中可包含函式名稱、原始程式檔 (Source File) 路徑和模組 (可執行檔或 DLL) 路徑的任意組合。 內容運算子可用於指定外部範圍的名稱等用途,否則這些名稱將被區域的名稱所隱藏。
範例
若要在 EXAMPLE.CPP 的 301 行設定一中斷點:
{,EXAMPLE.CPP,}@301
如果您要省略 function 或 module,則不可以省略兩個逗號。 因此,下列語法是無效的:
{File.c, File.exe} @143 // Invalid syntax
不過,如果您同時省略 source 和 module,則可省略逗號。 下列語法是有效的:
{Fun} @143
如果 source 或 module 路徑包含逗號、內嵌的空格或大括號,則您必須使用引號來括住路徑名稱,以便讓內容剖析器 (Parser) 可以正確地辨識字串。 由於單引號被視為 Windows 檔案名稱的一部分,因此您必須使用雙引號。 例如:
{,"a long, long, name.c", } .143
當運算式評估工具在運算式中碰到一個符號時,它將以下列順序來搜尋該符號:
向外擴展語彙範圍 (Lexical Scope),從目前的區塊開始,也就是大括號所括住的一系列陳述式,繼續向外擴展括住的區塊。 目前的區塊為包含目前位置 (指令指標位址) 的程式碼。
函式範圍。 目前的函式。
如果目前的位置是在 C++ 成員函式內,則為類別範圍 (Class Scope)。 類別範圍包含所有的基底類別。 運算式評估工具將使用一般的支配規則。
目前的模組。
全域符號。
其他模組。
程式中的公用符號。
透過內容運算子,您可指定搜尋的起點,並跳過目前的位置。 您不能指定一個類別,不過可以指定類別的成員函式,並讓運算式評估工具往外搜尋。