【发布时间】:2011-01-17 10:37:51
【问题描述】:
我有一个只在 -O2 优化中崩溃的应用程序(使用 gcc 4.2.4 编译)。当我单步执行代码并到达崩溃点并尝试检查值时,我会在 gdb 中得到一个“优化的值”。
我在互联网上读到这意味着该值存储在寄存器中。我想知道我的崩溃是否与某些信息被放置在寄存器中的事实有关?有没有办法打印寄存器中的内容以查看它是否已损坏?有没有办法保持优化但不使用寄存器?
谢谢!
【问题讨论】:
-
优化通常不会产生错误(这种情况极为罕见)。但是,它通常会导致暴露在未优化版本中未被检测到的内存泄漏。
-
请接受答案;你问这个问题已经快 2 年了。