gpt4 book ai didi

visual-studio - Visual Studio 调试器问题

转载 作者:行者123 更新时间:2023-12-04 11:24:51 25 4
gpt4 key购买 nike

在 Visual Studio 2008 中,调试大约 1-2 分钟后,当我按 F10(Step Over)时,调试器挂起,Visual Studio 卡住 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);
}
}

您需要在“XElement element = new XElement("element");”行上放置一个条件断点。条件为“i == 999”。然后启动程序,等待 2-3 秒并在“parentElement.Add(element);”行上放置正常断点。现在 VisualStudio 死机,无法调试。在 WinForm 应用程序中,它会在按下 F10 后关闭所有打开的窗体。

但是我发现如果我在“工具->选项->调试”中禁用调试选项“在变量窗口中的对象上调用字符串转换函数”,我可以调试。它很慢,但至少 VisualStudio 不会卡住。有谁知道它为什么这样做?因为我不想禁用这个选项,所以没有它调试真的很烦人。

我还注意到,如果我只在 main 方法的末尾放置一个断点,与递归方法中的条件断点相比,代码运行速度非常快。

最佳答案

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

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

关于visual-studio - Visual Studio 调试器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com