【发布时间】:2010-09-30 16:44:07
【问题描述】:
您好,我正在使用 Visual Studio 2010,但我无法弄清楚一件事。我可以在发布模式和调试模式下调试和设置断点。那么这两者有什么区别呢?
【问题讨论】:
-
Debug VS Release in .net 的可能重复项
您好,我正在使用 Visual Studio 2010,但我无法弄清楚一件事。我可以在发布模式和调试模式下调试和设置断点。那么这两者有什么区别呢?
【问题讨论】:
不同之处在于编译器在发布模式下应用的优化。如果您有 PDB 文件,则可以放置断点,默认情况下,即使在发布模式下也会生成它们。
【讨论】:
这里有更详细的答案Scott Hanselmans Blog
但问题的根源在于代码编译时进行了更多优化,由于pdb文件的创建,您仍然可以调试。
【讨论】:
新分配的内存包含任意值 - 无论最后碰巧坐在那里。在发布版本中,这是不变的。 VS 中的调试构建将新分配的内存初始化为 0xcdcdcdcd 以标记为“未初始化”。
为什么 release 会用垃圾来填充内存以使调试更容易?发布模式就是这样 - 实际发布的额外开销最小。
【讨论】:
这是标题为 How to: Set Debug and Release Configurations 的 Microsoft 页面的链接
它讨论了 Debug 和 Release 之间的区别。在页面顶部,您可以选择不同版本的 Visual Studio。
【讨论】: