通过调试发布版本而不是调试版本,我可能会遇到哪些问题?

Joh*_*ell 5 c# debugging visual-studio

假设我更喜欢在开发期间调试我的软件的发布版本.

这样做可能会让我想念什么问题?

Dan*_*Man 5

  1. Release版本中有一些优化.您可以在此处查看完整的优化列表.他们都不应该影响该计划的结果.

  2. 如果您在任何地方都有DEBUG指令,那将会保留.请注意这一点,因为这可能会改变整个功能.

  3. Debug.Asserts将在调试模式下失败,但不会在释放模式下失败.


ASh*_*lly 3

您可能会错过缓冲区溢出。调试代码在程序可用的内存周围添加填充,而发布版本则不会。因此,当您在调试版本中写入无主内存时,调试器可以检测并发出警告。在发布版本中,相同的问题可能会被忽视,直到用户输入一个导致所有内容崩溃的特殊输入。

使用未初始化的变量也是如此。调试版本可以检测到它,而发布版本则不会。根据墨菲定律,发布前的最后一次更改会将未初始化的变量更改为导致您决定不重新测试的部分出现问题的变量。