2010-08-11 53 views
5

通常當在Visual Studio中使用斷點(本例中爲2008)時,我只會看到一個扁平列表。有時候,我會爲每個斷點獲取樹形視圖,如下所示(擴展節點有26個子節點)。所有樹節點引用同一行代碼,並且所有可選列顯示每個節點的相同數據。我想他們可能與線程有關,但這些的用途是什麼以及它們實際顯示的是什麼?如果它們有用處,你應該如何區分它們?Visual Studio斷點窗口:TreeView顯示什麼?

Breakpoints window http://www.freeimagehosting.net/uploads/2244242173.png

+0

它通常是同一代碼的多個實例 - 我通常會說當你有一個泛型基類時,但我現在無法自己做這件事。或者至少這是我用C++和ATL編程時的解釋。 – Rup 2010-08-11 09:25:13

回答

4

在我而言,這似乎涉及到在這個過程中的AppDomain正在調試。如果我將WinDbg附加到進程中,加載SOS.dll並運行!DumpDomain,我可以看到26個AppDomains,對應於問題中的26個樹節點。如果Breakpoints窗口中有一列可以區分它們,那將會很好!

3

這些被稱爲兒童斷點,被稀疏地記錄(12),並且通常相當有問題。

根據經驗,本機代碼孩子斷點形成:

  1. 對於內聯函數,多次實例化,
  2. 模板功能,多次實例化,
  3. 在靜態庫,是針對多個鏈接調試過程中的DLL [es],
  4. 每當調試引擎感到無聊時。嚴重的是,他們中的大多數似乎是徹頭徹尾的假。
相關問題