1. ホーム
  2. gdb

[解決済み] gdbで<value optimized out>とはどういう意味ですか?

2022-02-07 08:31:49

質問

(gdb) n
134   a = b = c = 0xdeadbeef + ((uint32_t)length) + initval;
(gdb) n
(gdb) p a
$30 = <value optimized out>
(gdb) p b
$31 = <value optimized out>
(gdb) p c
$32 = 3735928563

gdbはどのように私の値を最適化することができますか?

どのように解決するのですか?

でコンパイルしたということです。 gcc -O3 gccのオプティマイザーは、いくつかの変数が何らかの形で冗長であることを発見し、それらを最適化することを可能にしました。このケースでは、同じ値を持つ3つの変数a, b, cがあるようですが、おそらくこれらはすべて1つの変数にエイリアスすることができると思われます。最適化を無効にしてコンパイルしてください。 gcc -O0 このような変数を確認したい場合、デバッグビルドの場合は一般的にこの方法が良いでしょう)。