分享方式:


Visual Studio 偵錯工具中的內容運算子 (C++)

您可以使用 C++ 中的內容運算子限定中斷點位置、變數名稱或運算式。 內容運算子對於指定來自外部範圍的名稱相當實用,因為這類名稱會被本機名稱所隱藏。

語法

指定內容的方式有兩種:

  1. {,,[module] } expression

    大括號必須包含兩個逗號和模組 (可執行檔或 DLL) 名稱或完整路徑。

    例如,若要在 SomeFunctionEXAMPLE.dll 函數中設定中斷點:

    {,,EXAMPLE.dll}SomeFunction
    
  2. module!expression

    EXAMPLE.dll!SomeFunction
    
  • module 是模組的名稱。 您可以使用完整路徑釐清具有相同名稱的模組。

    如果 module 路徑包含逗號、內嵌空格或大括號,您就必須使用引號括住路徑,如此內容剖析器才能正確辨識字串。 單引號會視為 Windows 檔案名稱的一部分,因此您必須使用雙引號。 例如,

    {,,"a long, long, library name.dll"} g_Var
    
  • expression 是解析為有效目標的任何有效 C++ 運算式,例如 module 中的函式名稱、變數名稱或指標位址。

    當運算式評估工具在運算式中遇到符號時,它會依照下列順序搜尋該符號:

  1. 語彙範圍向外擴展,從目前區塊開始 (大括號括住的一連串陳述式),並繼續向外擴展至封閉區塊。 目前區塊是包含目前位置 (指令指標位址) 的程式碼。

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

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

  4. 目前模組中的全域符號。

  5. 目前程式中的公用符號。