“调试器无法继续运行该进程。”

时间:2011-04-22 02:18:21

标签: c# visual-studio visual-studio-2010 debugging

我一直在搞乱VS 2010调试设置,试图进入.NET Framework工作。好吧,我无法让它发挥作用。我也试过了Reflector VS插件,而且这个插件工作正常。

然后我随机开始收到此错误:

enter image description here

当我在调用IEnumerable<T>.ToList()的行上有断点时,会发生 。如果我尝试在设置断点的那一行上跳过或步入,我会得到这个错误对话框并且调试会话结束。

如果我将断点移到下面的行,调试器会使它超过ToList()调用!

我尝试过以下无效:

  • 删除Reflector插件。
  • 在工具&gt;中撤消我的更改选项&gt;调试窗口(取消选中步入.NET Framework的选项;取消选中源服务器选项;选中我的代码选项)。
  • 工具中未经检查的Microsoft源服务器&gt;选项&gt;调试&gt;符号窗口。
  • 清除了符号缓存。

发生了什么事?

9 个答案:

答案 0 :(得分:5)

因为这是我在搜索答案时第一个来到的地方,我会添加我发现的内容。

就我而言,我在解决方案中设置了调试器来启动多个项目。出于某种原因,Visual Studio更改了此设置,因此没有项目启动。纠正解决方案中的设置立即解决了问题。

问题并不难解决,但错误信息更令人恼火。

答案 1 :(得分:4)

我刚发现this answer很有用。我所做的只是将我的启动项目改为另一个,并恢复正常。

我的项目可能在某个地方丢失了此设置,重置它使其再次可用。

答案 2 :(得分:2)

这是一个ToString()覆盖,使调试器崩溃! (评估后,调试器将使用ToString()方法显示结果)。如果在ToString()中出现异常,则永远不会捕获异常,因为您无法对调试器行为进行编码。

我从msdn

得到了这个答案

答案 3 :(得分:1)

我遇到了同样的问题......

我发现了一种听起来不常见的解决方案......

调试器无法继续运行该进程。进程已终止 在逐步调试代码时,您将找到错误重定向的行。 如果您在该文件中的任何位置使用“ToString()”,请删除它。 而不是,您可以使用值/文本。 它工作正常。 ............

如果您没有在程序中的任何位置使用ToString(),则通过完全删除重新加载项目副本。

答案 4 :(得分:1)

我遇到了同样的问题。我将它追溯到一个类(逐步调试),最后到一个属性(评论所有代码,然后逐步取消注释)。

此属性从table.Dataset

返回一个类型化的数据集
private typedDataSet myDataSet
{
   return this.DataSet as typedDataSet;
}

这是在DataTable分部类中。 删除此属性后,一切正常。

答案 5 :(得分:1)

我遇到了这个问题,包含了复制/粘贴的代码错误。我没有获取/设置私有成员变量,而是自己进行了get / set。当我在其他代码中引用该属性时,调试器终止(2010):

public bool ProdToDeve
{
   get { return ProdToDeve; } // <= missing underbar
   set { ProdToDeve = value; }
}
private bool _ProdToDeve = false;

答案 6 :(得分:0)

当您尝试调试Xamarin解决方案但是您已选择类库作为启动项目而不是应用程序项目时,此消息也会显示。

答案 7 :(得分:0)

当我做以下事情时,我突然想到了:

throw new Exception(timeout.TotalSeconds + " second(s)");

那是因为timeout.TotalSeconds.ToString()确实是类型为double的对象的覆盖方法,而是抛出Parameter not valid异常。

最后,为了安全起见,我最终做了以下事情:

throw new Exception(System.Convert.ToString(timeout.TotalSeconds));

答案 8 :(得分:0)

通常,这也是在多线程上下文中可以获得的错误消息。简而言之,它涉及并发性:确保始终确保您的资源访问安全。

就我而言,当我忘记保护代码中某些位置的资源访问时,收到此错误消息。 要解决此问题,我只需要用(在相关资源上) lock 说明来装饰关键部分。我希望这会对在这种情况下的人有所帮助。