在我今天愉快的调试会话中,我意识到分段错误的原因或多或少如下:
assert(functionWithSideEffect());
doSomethingWhichSegfaultsUnlessSideEffectHappens();
我很清楚你不应该做这样的事情,我显然修复了代码,但我仍然很困惑为什么在使用调试可执行文件进行测试时会发生分段错误,即没有定义 NDEBUG。
在这种情况下不应该执行断言参数中的函数吗?
在我今天愉快的调试会话中,我意识到分段错误的原因或多或少如下:
assert(functionWithSideEffect());
doSomethingWhichSegfaultsUnlessSideEffectHappens();
我很清楚你不应该做这样的事情,我显然修复了代码,但我仍然很困惑为什么在使用调试可执行文件进行测试时会发生分段错误,即没有定义 NDEBUG。
在这种情况下不应该执行断言参数中的函数吗?