An earlier question explicó que en x86 el tamaño de los objetos que se ven está limitado por los registros de depuración. Como era de esperar, puedo "mirar" una variable doble. Pero no puedo ver una doble DataMember, por ejemplo,Establecer el punto de observación del hardware GDB/cómo configurar el punto de observación del software
watch pObject->dPrice
produce
Hardware watchpoint 1: pObject->dPrice
Pero cuando intenta continuar la ejecución, se dice
No se pudo insertar los puntos de interrupción de hardware: Es posible que haya solicitado demasiados puntos de interrupción/puntos de observación de hardware.
aunque este es el solo punto de interrupción/punto de observación.
Tengo curiosidad de por qué esto es así, pero lo más importante es que hay una forma de evitarlo? De acuerdo con la documentación de GDB, puede usar puntos de observación de software si no puede usar hardware. En este caso, no intenta usar un punto de observación de software. ¿Hay alguna manera de obligarlo a hacerlo?
¿Puede imprimir la dirección de esa variable miembro? Mi sospecha sería que está optimizado en un registro. Si no es así, ¿está alineado correctamente? –