Tengo una aplicación que solo se bloquea en -O2 optimización (compilada con gcc 4.2.4). Cuando paso por el código y llego al punto que se bloquea y trato de inspeccionar el valor, obtengo un "valor optimizado" en gdb.¿Está <value optimised out> en gdb un problema?
He leído en Internet que esto significa que el valor se almacena en el registro. Me preguntaba si mi accidente podría estar relacionado con el hecho de que cierta información se coloca en los registros. ¿Hay alguna forma de imprimir lo que está en los registros para ver si está dañado? ¿Hay alguna manera de mantener optimizaciones pero no usar registros?
Gracias!
La optimización normalmente no crea errores (esto sería extremadamente raro). Sin embargo, a menudo puede causar que se pierdan las pérdidas de memoria que no se detectaron en una versión no optimizada. – Pace
Por favor, acepte una respuesta; Han pasado casi 2 años desde que hizo esta pregunta. –