在.NET IDE中暂停程序时是否可以执行此调试代码?

时间:2011-04-30 07:49:52

标签: .net visual-studio-2010 debugging ide visual-studio-debugging

我有两个庞大的数据结构导致我的VB.NET应用程序出现问题。抛出异常并且应用程序暂停后,我想运行一些代码:

For Each o As MyClass In myObjects
  If o.property = "value" Then debug.print(o.id)
Next

诊断问题。

问题是即时窗口不会让我执行循环,而myObjects集合包含太多的对象,我无法手动找到我想要的有问题的对象。

如何在调试器暂停时找到此对象?在.NET IDE中是否可以使用这个或类似的东西?

2 个答案:

答案 0 :(得分:6)

您应该可以使用IDE中的立即模式窗口来执行这样的命令,但数据必须在调试器的当前范围内可用。

答案 1 :(得分:2)

不,您不能直接从IDE执行此操作。不幸的是,解决它的最简单方法是停止调试,在一个返回你正在寻找的对象的公共静态方法中编写循环,重新编译并运行,然后从Immediate或Watch窗口调用该公共静态方法

另一个更直接(但令人讨厌)的技巧是在立即窗口中写入“? myObjects”,将结果复制粘贴到记事本中,并在记事本中使用文本搜索(Ctrl + F)来查找对象。 / p>