Din*_*ray 4 c++ gdb coredump g++ c++11
对于我的项目,发布版本(使用-O2标志编译)比调试版本(使用-g -O0标志编译)具有更高的性能。
-O2
-g -O0
所以我必须使用发布版本。
但是,在生产环境中,发布程序有时会产生核心转储。
然后我gdb xxx core用来调试核心转储文件,但没有足够的信息给我。
gdb xxx core
我不在乎程序或任何其他文件的大小。我想要最好的性能和最详细的调试信息。
我该怎么办?
Hea*_*ery 5
-g 不会更改生成的代码。它只添加调试信息。因此它不应该影响性能。
-g
您应该调查为什么您会看到性能差异 - 这可能会揭示一些有用的信息。
优化设置是影响性能的设置。如果您需要打开它们,请尝试-Og 优化设置。它将启用不干扰调试的优化。
-Og
最后,生产通常不是调试的好地方。您的其他环境应设计为重现生产中可能发生的所有错误。目标是确保您永远不会在生产中遇到新的错误。当然在实践中非常困难,但考虑花更少的时间让调试在生产中工作,而更多的时间让您的其他环境如此紧密地匹配,以便您可以识别(也许通过比较日志)然后在那里重现错误。作为一个好处,您将在它们到达生产之前捕获更多错误。
归档时间:
6 年,8 月 前
查看次数:
777 次
最近记录: