Visual studio VisualStudio 2017-调试器在使用单步执行时跳过代码

Visual studio VisualStudio 2017-调试器在使用单步执行时跳过代码,visual-studio,debugging,Visual Studio,Debugging,是什么导致VS 2017的调试器跳过代码?我已经验证了构建设置为Debug,并且项目的属性->构建->优化代码未选中。我已尝试从计算机中删除所有源文件和输出文件,并再次从TFS中签出,但问题仍然存在。我尝试以其他帐户登录并卸载/重新安装VS,但都没有解决问题。如果我设置了手动断点,调试器工作得很好,并且会在它不会进入的部分命中这些断点,但是使用step-into通常会无缘无故地跳过我自己代码的部分 编辑 因此,禁用仅我的代码修复了我完全不理解的问题。虽然在两个项目/程序集中,但代码在同一个解决方

是什么导致VS 2017的调试器跳过代码?我已经验证了构建设置为
Debug
,并且项目的
属性->构建->优化代码
未选中。我已尝试从计算机中删除所有源文件和输出文件,并再次从TFS中签出,但问题仍然存在。我尝试以其他帐户登录并卸载/重新安装VS,但都没有解决问题。如果我设置了手动断点,调试器工作得很好,并且会在它不会进入的部分命中这些断点,但是使用
step-into
通常会无缘无故地跳过我自己代码的部分

编辑

因此,禁用
仅我的代码
修复了我完全不理解的问题。虽然在两个项目/程序集中,但代码在同一个解决方案中。所以我想我的答案是,为什么VisualStudio认为方法的中间/末端不是“我的代码”

为什么VisualStudio认为方法的中间/结尾不是“我的代码”

根据文件:

仅启用我的代码

调试器将显示并单步执行用户代码 仅限(“我的代码”),忽略系统代码和 优化的或没有调试符号的

即使所有代码都在同一个解决方案中,尽管在两个项目/程序集中,您仍然需要确保它是否经过优化并具有调试符号


注意:不要错过将.PDB文件复制到编译目录。

我能想到的第一个原因是源代码需要重新编译。另一个原因是源代码不是构建的一部分,因为文件不是项目的一部分,或者使用预处理器指令导致编译器跳过源代码。我已经清理和重建了项目好几次,手动删除了源和构建目录。源代码是构建的一部分,它将单步执行方法的开头,然后跳过中间/结尾。正如我提到的,如果我在代码中手动设置断点,它将按预期工作。没有预处理器指令告诉调试器跳过调用的方法。