私は-fno-omit-frame-pointerが最適化なしで何をするのだろうと思っていましたか?-fno-omit-frame-pointer without optimization
CXXFLAGS = -Wall -ggdb3 -DDEBUG -fno-省略フレームポインタ
それはfomitフレームポインタ自動-Oのすべてのレベルでオンになっていない(ただし - O0)?私の例では、デフォルトで-O0と仮定します。
ありがとうございました!
私は-fno-omit-frame-pointerが最適化なしで何をするのだろうと思っていましたか?-fno-omit-frame-pointer without optimization
CXXFLAGS = -Wall -ggdb3 -DDEBUG -fno-省略フレームポインタ
それはfomitフレームポインタ自動-Oのすべてのレベルでオンになっていない(ただし - O0)?私の例では、デフォルトで-O0と仮定します。
ありがとうございました!
あなたがすでに暗示しているように、フレームポインタがデフォルトの-O0で省略されないので、-fno-omit-frame-pointer
は無視されます。
私が理解しているように、Oxは一連の最適化フラグのショートカットです。デフォルトの最適化はゼロであるため、Oxを使用せずに1つのフラグを使用すると、その最適化だけが行われます。
私の意見では、フレームポインタを省略すると、デバッグの難しさが増し、パフォーマンスが少し向上します。
* "私の意見では、フレームポインタを省略すると..." - スタックトレースはほとんど役に立ちません。 'bt full'は不自由な人になるでしょう。 – jww
x86およびファミリでは、 '-fomit-frame-pointer'はデバッグを妨げる可能性があるため、デフォルトで高レベルの最適化レベルが有効になっていません。 –
x86-64やarmなどのアーキテクチャでは、デフォルトで生成されたフレームポインタはありません(ABIで指定されています)。このオプションを指定すると、コンパイラはフレームポインタレジスタを生成します。 –