subaru - ¿Qué significa<valor optimizado hacia fuera> en gdb?
gdb unix (4)
Desde https://idlebox.net/2010/apidocs/gdb-7.0.zip/gdb_9.html
Los valores de los argumentos que no se guardaron en sus marcos de pila se muestran como `valor optimizado de salida ''.
Supongo que compiló con -O (algún valor) y tiene acceso a las variables a, b, c en una función en la que se ha realizado la optimización.
(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
¿Cómo puede gdb optimizar mi valor?
No lo hizo Su compilador lo hizo, pero todavía hay un símbolo de depuración para el nombre de la variable original.
Significa que compiló con, por ejemplo, gcc -O3
y el optimizador de gcc descubrió que algunas de sus variables eran redundantes de alguna manera que permitieron que se optimizaran. En este caso particular, parece que tiene tres variables a, b, c con el mismo valor y, presumiblemente, todas pueden ser asignadas a una sola variable. Compile con la optimización desactivada, por ejemplo, gcc -O0
, si desea ver tales variables (esto es generalmente una buena idea para las construcciones de depuración en cualquier caso).
Simplemente ejecute "export COPTS = ''- g -O0'';" y reconstruye tu código. Después de reconstruir, depúrelo usando gdb. No verás tal error. Gracias.