VS调试器跳过相同范围内的断点

时间:2019-11-14 20:55:18

标签: visual-studio-2017 visual-studio-debugging

我正在调试ASP.NET应用程序

此方法有两个断点:

private void Load()
{
    Stopwatch t = Stopwatch.StartNew(); //breakpoint A
    ...
    LoadStuff(blah); //breakpoint B
}

当我在VS中启动LocalIIS(GoogleChrome)时,debugger在断点B处停止。先前的Call Stack调用Load()。而且,我有一个从Load()处被调用的断点,它也不止于此。为什么它跳过断点A?有没有办法不跳过它?

1 个答案:

答案 0 :(得分:0)

  

此外,我有一个从其中调用Load()的断点,它   也不止于此。为什么跳过断点A?

由于某些原因,断点A似乎对您无效。一种可能是所引用的DLL与您正在调试的代码版本不同步,或者您更改了代码,并且与pdb符号调试文件不一致。

首先,请选择enable Just my code,以防VS忽略断点A。

解决方案

确保禁用优化(对于Debug配置,这是默认设置,但是在Release配置中启用了这些功能)。编译器优化可能会干扰调试器

此外,请尝试以下步骤从服务器生成最新的pdb文件以匹配您的项目。

1。清洗溶液

2。工具->选项->调试->符号  首先清空旧的pdb符号文件,并记住从Microsoft Symbol Servers和NuGet.org.Symbol Server中选择“加载所有模块,除非排除”。

3。从服务器中加载所有用于调试项目的符号

enter image description here

4。重建您的项目,该项目将生成与您的项目匹配的DLL。

您可以参考this以获得更多信息。希望它能对您有所帮助。