Visual Studio的调试速度非常慢

Ric*_*odd 15 c# debugging visual-studio-2010

我试图使用具有布尔条件的断点来调试VS2010中的程序.这个特定的断点非常缓慢,使我的程序运行速度比无条件或使用常规无条件断点慢几百倍.

我的问题是,这是视觉工作室的常见问题,我不敢相信调试器会这么慢吗?布尔表达式非常简单,它只是说在for循环中i == x时打破程序.

任何帮助赞赏,因为它使调试非常痛苦.

谢谢理查德

        public static RawNetCalculationResults newCATXLNets(IList<Loss> RawLosses, IList<ReinsuranceProgramme> Programme) //Loss contains the properties Year, EventID, Loss Value
    {
        List<Recoveries> NetRawLosses = new List<Recoveries>(RawLosses.Count * Programme.Count);    //Initiate list with required capacity

        //Loop over each element in RawLosses List and do some calculations
        foreach (var e in RawLosses)
        {                           //<----BREAK POINT HERE (e.Year == x)
            foreach (var layer in Programme.Where(x => x.Type == ReinsuranceType.CATXL))
            {
Run Code Online (Sandbox Code Playgroud)

Nic*_*ler 26

是的,条件断点很慢.

作为替代方案,您可以使用Debug.Assert:

Debug.Assert( i != x );
Run Code Online (Sandbox Code Playgroud)

这将导致断言触发,i == x并且您可以从那里进行调试.

  • 我更喜欢:`if(condition)Debugger.Break();` (20认同)
  • 效果很好,我最终使用Debugger.Break来获得确切的功能.与此相比,断点本身有点奇怪. (3认同)
  • 显然,这与用于调试的实际物理硬件有关 - 不是我猜到的。https://www.codeproject.com/Questions/501675/Whyplusareplusconditionalplusbreakpointsplussoplus (2认同)