gpt4 book ai didi

c++ - 不使用 -g 选项编译,但我想获得更详细的调试信息

转载 作者:搜寻专家 更新时间:2023-10-31 00:50:54 24 4
gpt4 key购买 nike

对于我的项目,发布版本(使用 -O2 标志编译)比调试版本(使用 -g -O0 标志编译)具有更高的性能。

所以我必须使用发布版本。

但是在生产环境中,发布程序有时会产生核心转储。

然后我使用 gdb xxx core 调试核心转储文件,但没有足够的信息给我。

我不关心程序或任何其他文件的大小。我想要最好的性能和尽可能详细的调试信息。

我该怎么办?

最佳答案

-g does not更改生成的代码。它只添加调试信息。因此它should not影响性能。

您应该调查为什么会看到性能差异 - 这可能会揭示一些有用的信息。

优化设置会影响性能。如果您需要打开它们,请尝试 -Og optimisation setting .它将启用不干扰调试的优化。

最后,Production 通常不是调试的好地方。您的其他环境应设计为重现生产环境中可能发生的所有错误。目标是确保您永远不会在生产环境中遇到新的错误。当然在实践中非常困难,但请考虑花更少的时间让调试在生产环境中工作,并花更多的时间让您的其他环境非常匹配,以便您可以识别(可能通过比较日志)然后在那里重现错误。作为一个好处,您将在更多错误到达生产环境之前发现它们。

关于c++ - 不使用 -g 选项编译,但我想获得更详细的调试信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56649208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com