2010-08-11 62 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. 每当调试引擎感到无聊时。严重的是,他们中的大多数似乎是彻头彻尾的假。
相关问题