共用方式為


內容運算子 (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

當運算式評估工具在運算式中碰到一個符號時,它將以下列順序來搜尋該符號:

  1. 向外擴展語彙範圍 (Lexical Scope),從目前的區塊開始,也就是大括號所括住的一系列陳述式,繼續向外擴展括住的區塊。 目前的區塊為包含目前位置 (指令指標位址) 的程式碼。

  2. 函式範圍。 目前的函式。

  3. 如果目前的位置是在 C++ 成員函式內,則為類別範圍 (Class Scope)。 類別範圍包含所有的基底類別。 運算式評估工具將使用一般的支配規則。

  4. 目前的模組。

  5. 全域符號。

  6. 其他模組。

  7. 程式中的公用符號。

透過內容運算子,您可指定搜尋的起點,並跳過目前的位置。 您不能指定一個類別,不過可以指定類別的成員函式,並讓運算式評估工具往外搜尋。

請參閱

其他資源

原生 C++ 中的運算式