gpt4 book ai didi

c - 为什么 GCC 在设置为 O0 时仍然优化了一些东西?

转载 作者:IT王子 更新时间:2023-10-29 06:15:19 24 4
gpt4 key购买 nike

在调试 Redis 时,我用 make noopt 编译了代码, 在 Makefile 中,优化设置为 O0 .在调试时,我仍然得到了一些优化:

GDB screen shot

在第一行,我们可以看到aeDeleteFileEvent的所有参数,但是当我进入 aeApiDelEvent (第-2行),它的所有参数都是<optimized out> .

为什么这些发生了?

另一个问题,在第 3 行,我列出了所有断点。实际上,第三个断点是 aeApiDelEvent我已经在调试文件 (x.gdb) 中设置了,但为什么它变成了 aeDeleteFileEvent

最佳答案

好的,感谢@alk(事实是 GCC 对其进行了优化)和@markys(V=1 对我有用)。

我在 Redis 的 Makefile 中发现了一个棘手的问题(可能是 Bug,因为它使得 make noopt 对调试没有影响),有一条规则将包含一个 .make-settings,并且在该文件中,选项之一是设置 O2 优化。

在Makefile中注释该行后,现在GDB中没有出现优化。

关于c - 为什么 GCC 在设置为 O0 时仍然优化了一些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494535/

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