共用方式為


問題詳細數據視窗

[ 問題詳細資料] 視窗會顯示 MSVC 編譯器或 Microsoft C++ 程式代碼分析所發出的結構化診斷。

在 [ 錯誤清單 ] 視窗中 選取專案,以顯示 [ 詳細 數據] 資料行中的圖示,以開啟 [ 問題詳細數據 ] 視窗。 [ 問題詳細資料 ] 視窗會顯示所選取項目的結構化診斷。

Visual Studio 錯誤清單的螢幕快照,其中一個專案在其詳細數據行中有一個圖示。

Visual Studio 錯誤清單的螢幕快照。 它會顯示具有單一數據列的數據表。 數據列代表編譯程式錯誤,並包含錯誤碼 C2665、描述「pet:沒有多載函式可以轉換所有自變數類型」,以及名為 Details 之數據行中放大邊角的正方形圖示。 此圖示會反白顯示。

兩個案例會產生下列診斷:

  • 使用 MSBuild 和 MSVC 編譯器的 C++ 編譯可能會發出結構化診斷。
  • 支援 金鑰事件 數據發出結構化診斷的程式代碼分析警告。

執行下列其中一項動作,以開啟 [問題詳細資料 ] 視窗:

  • 當專案反白顯示時,請按兩下或按 Enter 鍵。 使用 [工具>選項>] 文字編輯器>C/C++>[在按兩下時顯示>問題詳細資料] 停用此行為。
  • 選取 [ 詳細數據] 資料列中的圖示。
  • 開啟專案的快捷方式功能表,然後選取 [ 開啟問題詳細數據] 選項。

根據預設,[ 問題詳細資料 ] 視窗會在與 [ 錯誤清單 ] 視窗相同的位置開啟。 變更 [ 問題詳細數據 ] 窗口開啟的位置,方法是將它移至所需的位置。

[ 問題詳細資料 ] 視窗會顯示可能巢狀的結構化資訊。 當窗口開啟時,具有巢狀子系的所有專案都會開始折疊。

Visual Studio [問題詳細數據] 視窗的螢幕快照,其中已折疊所有子系。

Visual Studio [問題詳細數據] 視窗的螢幕快照。 標頭會顯示與之前的錯誤清單專案相同的錯誤碼和描述。 也有一個可選取的連結與文字cppcon-diag.cpp(第 23 行)。 在此標頭下方有一個專案說明潛在的多載是 void pet(cat)、void pet(dog),或 void pet(_T0)。 最後一個專案指出「嘗試比對自變數清單(蜥蜴)時」。 每一行右邊是灰色文字,其中顯示每個項目的檔案和行號。 它們全都屬於cppcon-diag.cpp,行號分別為 7、6、18 和 23。 前三個專案左邊是指向右的小型空心箭號,表示這些專案可以展開,但目前不是。

展開專案以檢視其子系,方法是選取專案左側的箭號,或按 Right 並反白顯示專案。

Visual Studio 問題詳細數據視窗的螢幕快照,其中已展開一些子系。

Visual Studio [問題詳細數據] 視窗的螢幕快照。 內容大多與上一個螢幕快照相同,不過部分項目會展開,使其子項目可見。 第一個項目會展開。 有一個巢狀專案與文字「void pet(cat) 無法將自變數 1 從蜥蜴轉換成貓。 此項目縮排,而且可以展開。 從之前的第二行展開,揭示了一個未擴展的項目,閱讀“空寵物(狗)不能將自變數1從蜥蜴轉換成狗。 第三個專案會展開,並顯示「不符合相關條件約束」的專案。 這個專案有一個擴展的孩子閱讀「概念寵物蜥蜴評估為 false。 此專案有兩個子系。 第一個是未展開的,並讀到“has_member_pet蜥蜴評估為 false 的概念。 第二個是展開的,並讀到“has_default_pet蜥蜴評估為 false 的概念。 第二個子系有兩個子系,兩個子系都無法展開。 他們讀到“is_pettable不是蜥蜴的成員”和“看到蜥蜴的聲明”。

使用 [項目>屬性>進階>啟用 MSVC 結構化輸出] 選項來啟用 或停用結構化診斷。 您可以使用定義為 true 或 false 的 UseStructuredOutput 屬性來建立 Directory.Build.props 檔案,以影響數個專案。