代码之家  ›  专栏  ›  技术社区  ›  Adrian Grigore

Visual Studio 2008:调试托管代码时,到下一行的步骤非常慢

  •  12
  • Adrian Grigore  · 技术社区  · 15 年前

    当通过F10逐行通过我的C代码时,调试器需要一秒钟的时间才能到达下一行。

    我试过删除所有的监视点和断点,但这没有任何区别。

    这是正常的吗?这种情况已经很长时间了,所以我甚至记不起来是否会更好。我的开发计算机是一个四核机器,没有背景任务活动,还有大量的内存。

    如果不正常,我还能尝试什么?它仍然可以使用,但一个不那么迟缓的用户界面将是伟大的…

    9 回复  |  直到 12 年前
        1
  •  13
  •   JaredPar    15 年前

    可能发生的情况是调用堆栈帧中有一个变量,它有一个昂贵的.toString方法。2008年,调用堆栈窗口的数据会在每个步骤上重建,而不管该窗口是否实际可见。构建此窗口的一部分将对参数列表中显示的值调用.ToString(如果这些值被重写).ToString。尝试禁用隐式.toString调用,看看是否能解决问题。

    • 工具->选项->调试器
    • 取消选中“启用隐式.toString调用”
        2
  •  5
  •   Kevin Kibler    15 年前

    我发现,如果启用了调试非托管代码的选项,那么即使只调试托管代码,调试程序也可能需要一段时间在两行之间切换。试着关掉那个选项( Project>属性>调试>启用调试程序>启用非托管代码调试 )

        3
  •  4
  •   Clint    12 年前

    我尝试了以上所有的方法。取消选中“在源中显示线程”按钮将其修复。

        4
  •  3
  •   mnieber    15 年前

    在我的例子中,禁用“当一个进程中断时中断所有进程”(工具/选项/调试器)会将“跨步”时间从2-3秒缩短到几秒钟。

    我不知道为什么这个选项会对完成一个步骤产生如此大的影响。 顺便说一句,如果您使用的线程彼此不独立,那么禁用此选项可能会导致问题。

        5
  •  1
  •   Noel Kennedy    15 年前

    我曾经经历过一次缓慢的调试,因为我设置了vs来在一个不再存在的网络共享上查找pdb文件。

    检查此处:工具-选项-调试-符号-符号文件(.pdb)位置

        6
  •  1
  •   Michael Petrotta user3140870    15 年前

    我听说过这样的问题,如果“自动”窗口打开。试着关闭它,看看你的表现是否有所改善。

    如果尚未安装,则可能还应安装 "Visual Studio 2008 SP1 debugging and breakpoint" 补丁。请注意,此补丁位于SP1之上。这个补丁的文档并没有特别指出你看到的缓慢,但是它是一个相当大的补丁,你可能会幸运的。

        7
  •  1
  •   rein    12 年前

    关掉 启用地址级别调试 选择权 Tools > Options > Debugging > General .
    这对我有很大的影响。

        8
  •  0
  •   driis    15 年前

    你有很多表表达式吗?它们将在每个步骤之间进行评估,如果它们需要时间运行,您将在执行步骤时注意到它是一个延迟。

        9
  •  0
  •   Elmo Shikha Dhawan    13 年前

    在停止C调试之后,我经历了10秒的延迟,然后才能够再次启动C调试。在此期间,VS2008将挂起,没有可单击的内容。在中禁用Visual Studio宿主进程后,现在有0秒的延迟。 Project Properties -> Debug .