我主要在带有断点的 Debug模式下测试 Visual Studio C# 程序。有时我需要构建发布版本 .exe 来运行一些测试,然后返回到 Debug模式进行测试。
在构建发布版本之前,我不会删除我的断点。是否有任何理由删除断点?有什么东西会转移到发布的 exe 中吗?我没有看到任何东西,但我只是想确定一下。
谢谢!
最佳答案
回到美好的过去,你可以在 exe 和 dll 文件的二进制代码中有一个 INT 3
机器指令,它是断点的汇编定义并且会(并且仍然会)导致进入调试器。没有 .NET 编译器/链接器会这样做。实际上,它不能——因为托管 exe 文件包含即时编译的 IL。
在 .NET 中,尤其是在 Microsoft 环境中,断点是 IDE 的一项功能,与
运行时,永远不会以二进制形式结束。
可以在此处找到有关托管断点机制的古老但详尽的文章:https://blogs.msdn.microsoft.com/jmstall/2004/12/28/how-do-managed-breakpoints-work/
断点存储在 VS 解决方案的配置文件中只是为了方便(因此开发人员不会在 Visual Studio session 之间丢失断点)。
相比之下,如果使用或配置不当,Debug.Assert
调用可能会对发布版本造成危害。
关于c# - 在构建发布 exe 之前是否需要删除断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763742/