Exception 尝试查看自定义对象时,QuickWatch失败,调试停止

Exception 尝试查看自定义对象时,QuickWatch失败,调试停止,exception,debugging,Exception,Debugging,我有一个分支对象,它有一些名称、链接和一些其他POCO属性。它还有一个父对象,是指向另一个分支项的链接。它还有一个作为TreeBranches对象的Children属性。这是一个IList。这基本上是我对TreeNode的替代品 在调试我的应用程序时,我可以在任何地方的断点上停止,并尽可能地快速监视任何其他嵌套对象。他们都工作。但是,当我快速观察一个分支对象时,它会显示一个“根”项。当我尝试转到任何子分支时,它会暂停片刻,然后所有值都不再显示。。。居住这意味着我不能再点击刷新按钮了。当我关闭Qu

我有一个分支对象,它有一些名称、链接和一些其他POCO属性。它还有一个父对象,是指向另一个分支项的链接。它还有一个作为TreeBranches对象的Children属性。这是一个IList。这基本上是我对TreeNode的替代品

在调试我的应用程序时,我可以在任何地方的断点上停止,并尽可能地快速监视任何其他嵌套对象。他们都工作。但是,当我快速观察一个分支对象时,它会显示一个“根”项。当我尝试转到任何子分支时,它会暂停片刻,然后所有值都不再显示。。。居住这意味着我不能再点击刷新按钮了。当我关闭QuickWatch窗口时,我看到我的网站位于一个页面上,好像我无法连接到该网站。我甚至不能继续按F5键

在我的职业生涯中,我制作了很多东西,我可以“观看”它们。有什么特殊的属性我应该应用吗?在我能看到问题所在的地方有错误日志吗?对于CLR异常,我已将其设置为在“抛出”错误时中断,但没有设置。也许是因为我已经“休息”了

“可能”是一个问题的另一件事是,我已经覆盖了分支对象上的ToString方法,以显示分支上的属性和子级的计数。然后TreeBranches对象还有一个ToString方法,该方法递归地循环遍历每个分支对象


有什么想法吗?

如果您在工具->选项->调试中取消选中“启用属性求值和其他隐式函数调用”,我想这不会发生

当事情停止工作时,是否会显示文本“由于上一次函数计算超时而禁用函数计算。您必须继续执行”。是否会显示

如果是这样的话,我敢打赌您的ToString实现是有缺陷的,会进入一个无限循环,或者只是有性能问题,耗时太长。尝试将这些.toString替换为“return string.Empty;”,看看问题是否仍然存在

与方法调用不同,调试器假定对象的.ToString应该很快返回,并且没有副作用,因此当对象仍在监视窗口中时,每次F5和break时都会重新计算它


如果不是ToStand,它可能是正在进行大量工作和超时的对象上的一些属性——检查对象上是否存在这样的属性,并考虑用[调试工具可浏览(Debug GraveBabLeLt.No.])来修饰它。在工具->选项->调试中“启用属性求值和其他隐式函数调用”

当事情停止工作时,文本“Function evaluation”(功能评估)是否因上一次功能评估超时而被禁用。你必须继续执行死刑,“出现吗

如果是这样的话,我敢打赌你的ToString实现是有缺陷的,会进入无限循环,或者只是性能有问题,耗时太长。试着用“return string.Empty;“然后查看问题是否仍然存在

与方法调用不同,调试器假定对象的.ToString应该很快返回,并且没有副作用,因此当对象仍在监视窗口中时,每次F5和break时都会重新计算它


如果不是ToStand,它可能是正在进行大量工作和超时的对象上的一些属性——检查对象上是否存在这样的属性,并考虑用[Debug GuffsBueSable(Debug GrabeBabLeLt.No.])来装饰它。

因为我忘了提到它,这是在VisualStudio 2010(Windows 7位)中的。因为我忘了提到它,这是在VisualStudio2010(Windows7 64位)中