这个问题的奇怪之处在于,我可以简单地删除和添加断点,然后一切就完全正常了。我没有使用任何类型的条件编译或编译器优化。有人知道这意味着什么或如何解决吗?每次编译都要替换10-12个断点,这真的很烦人。当前不会命中断点。该行没有与之相关联的可执行代码。可能的原因包括:条件编译或编译器优化。
这个问题的奇怪之处在于,我可以简单地删除和添加断点,然后一切就完全正常了。我没有使用任何类型的条件编译或编译器优化。有人知道这意味着什么或如何解决吗?每次编译都要替换10-12个断点,这真的很烦人。当前不会命中断点。该行没有与之相关联的可执行代码。可能的原因包括:条件编译或编译器优化。
出现这种情况可能有几个原因:
要找出发生了什么,请使用融合日志查看器查看正在加载的内容以及它们从哪里加载,然后你就可以查看 dll 并查看它是否为旧代码等。
确保不勾选代码优化选项,并确保已勾选调试符号。
请注意,当您更改配置时,其他设置可能会发生变化,您可能无法看到。确保所选配置的值是正确的。
物理删除所有生成的 DLL、PDB 和 EXE 文件。然后重新编译以生成文件。有时 Visual Studio 会“迷失方向”并在构建解决方案时“忘记”覆盖输出文件。
通常可以解决99%的问题。我已经遇到过一些 Visual Studio 的问题,重新启动它或计算机可以解决问题。
我知道这是一个旧帖子,但仍然及时,因为我正在寻找可能导致此问题的其他原因。
话虽如此,如果您正在创建Web应用程序,则还需要检查c:\ Windows \ Microsoft.NET \ [Frameworks]目录中的“Temporary ASP.NET Files”,因为根据我的经验,这些文件通常是问题的原因。
为了跟踪旧的ASP.Net应用程序中的这个谜团,我将此响应添加到旧帖子中。我有一个Webform代码后台没有响应断点,并显示“...无可执行代码...”调试器警告。它让我感到困扰,因为其他所有页面都正常工作。我已经做了清理、重建、清除临时的ASP.Net文件等操作,但都没有效果。
导致问题的罪魁祸首是该文件中包含多个#ExternalSource指令,围绕一些成员变量声明出现。一旦移除了这些指令并重新构建项目,断点行为就恢复正常了。那些ExternalSource的代码行出现在代码后台的生成部分,不确定为什么会存在。
使用预编译指令 #line 似乎也会影响断点的行为,我刚刚发现了这一点。