Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio调试器问题_Visual Studio_Visual Studio 2008_Debugging - Fatal编程技术网

Visual studio Visual Studio调试器问题

Visual studio Visual Studio调试器问题,visual-studio,visual-studio-2008,debugging,Visual Studio,Visual Studio 2008,Debugging,在VisualStudio2008中,调试大约1-2分钟后,当我按F10(单步执行)时,调试器挂起,VisualStudio冻结5-10秒,然后转到下一行。然后,无论我做什么(F10、F5、F11等),调试器都会继续执行,就好像我按了F5键并关闭了正在调试的所有窗体一样。我总是必须重新启动应用程序 它很难重现,而且不是每次我想调试某个东西时都会发生。有人有解决办法吗 编辑:我用以下代码重现了我的问题: static void Main(string[] args) { XElement e

在VisualStudio2008中,调试大约1-2分钟后,当我按F10(单步执行)时,调试器挂起,VisualStudio冻结5-10秒,然后转到下一行。然后,无论我做什么(F10、F5、F11等),调试器都会继续执行,就好像我按了F5键并关闭了正在调试的所有窗体一样。我总是必须重新启动应用程序

它很难重现,而且不是每次我想调试某个东西时都会发生。有人有解决办法吗

编辑:我用以下代码重现了我的问题:

static void Main(string[] args)
{
   XElement e = new XElement("root");
   Test(e, 0);
}

static void Test(XElement parentElement, int i)
{
   if (i < 1000)
   {
      XElement element = new XElement("element");
      parentElement.Add(element);
      Test(element, ++i);
   }
}
static void Main(字符串[]args)
{
XElement e=新XElement(“根”);
试验(e,0);
}
静态无效测试(XElement parentElement,int i)
{
如果(i<1000)
{
XElement元素=新的XElement(“元素”);
parentElement.Add(元素);
试验(元件+i);
}
}
您需要在条件为“i==999”的行“XElement element=new XElement(“element”);”上放置一个条件断点。然后启动程序,等待2-3秒,将正常断点放在“parentElement.Add(element);”行上。现在VisualStudio冻结,无法调试。在WinForm应用程序中,它关闭按F10后打开的所有窗体

但我发现,如果我在“工具->选项->调试”中禁用调试选项“变量窗口中对象的调用字符串转换函数”,我就可以进行调试。虽然速度很慢,但至少VisualStudio不会冻结。有人知道它为什么这样做吗?因为我不想禁用这个选项,没有它进行调试真的很烦人


我还注意到,如果我只在主方法的末尾放一个断点,那么代码运行速度比递归方法中有一个条件断点要快得多。

我不确定我是否遇到过这种情况,但如果我是你,如果你没有,请删除你的bin文件夹,然后重建你的项目。然后运行干净的溶液以确保安全。有时候,当你的PDB过时时,会发生一些奇怪的事情——所以你需要把它们清除掉


另外,如果您调用外部程序集,请删除它们并重新连接它们,以确保您拥有最新的程序集。

我发现,每当我将不存在的远程unc共享添加到符号目录列表中时,都会出现这样的减速

尝试转到工具->选项->调试->符号,并确保该列表中的所有目录实际存在


但是,我不知道这将如何导致程序在该点之后继续。

尝试删除存储调试/断点信息的解决方案用户选项文件(.suo)。您将丢失所有解决方案用户设置,例如断点位置。当您遇到“有趣的”调试事件时,这是第一件要尝试的事情,因为此文件可能会损坏


如果这不能解决问题,那么您还有其他问题,例如线程问题、内存碎片过多、垃圾收集问题、dispose/finalize问题等等。

我在另一个Stackoverflow线程上找到了这个问题的答案。此问题有一个MS。

我遇到了与您描述的完全相同的问题。MS修补程序解决了这个问题,现在每当我进行新的2008 VS安装时,我都会安装此修补程序。

请从此链接下载修补程序


我知道这是一个旧线程,但这是在我调试Excel加载项时发生的

问题是我的断点在后台线程中,在我的监视窗口中,我对Excel中的ActiveWorkbook进行了旧的检查。和其他许多调用一样,该调用只应发生在Excel的主线程上


一旦我卸下那块手表,它又能正常调试。

你能在另一个系统上重新安装你的操作系统和VS并在那里试着调试吗?我会怀疑其他软件/配置/硬件,而不是这是一个直接的VS问题。我不这么认为,因为它在我同事的计算机上也会出现同样的问题,而且他们中的一些人有不同的操作系统。你有很多断点吗?不,不幸的是,这似乎没有帮助。许多评论说,修复没有修复任何问题=(网页上的许多评论说,修复根本没有帮助=(请确保在应用修补程序后删除所有项目的bin/obj文件夹。)