Inspeccionar objetos en puntos de comprobación
Objetivos de aprendizaje
- Configurar puntos de comprobación en el código Apex.
- Analizar los objetos de la memoria con Checkpoint Inspector.
Establecer puntos de comprobación en el código Apex
En el momento en el que su nave espacial empiece a emitir sonidos de error del sistema, debe ir directamente a los registros para identificar el problema y la ubicación en la que se ha producido.
De forma similar, cuando el código Apex genera errores, observa problemas de rendimiento o no obtiene los resultados deseados, el primer paso es identificar el problema mediante el registro de depuración. Revisar todo el registro línea por línea es una tarea pesada. ¡Por eso los puntos de comprobación son tan útiles! Los puntos de comprobación muestran instantáneas de lo que ocurre en el código Apex en determinados puntos durante la ejecución.
Puede configurar hasta cinco puntos de comprobación en su código Apex. Los puntos de comprobación no están disponibles para el marcado de Visualforce.
EmailMissionSpecialist
que creamos anteriormente.- Seleccione File (Archivo) | Open (Abrir) y abra la clase
EmailMissionSpecialist
. - Seleccione Debug (Depurar) | Change Log Levels (Cambiar niveles de registro).
- En la sección General Trace Settings for You (Configuración de seguimiento general para usted), haga clic en Add/Change (Agregar/Cambiar).
- Establezca el nivel de registro de
ApexCode
en FINEST (Máxima precisión).
Nota: Para establecer puntos de comprobación, necesita el permiso de usuario Ver todos los datos. Para generar resultados empleando puntos de comprobación, ejecute el código empleando la ejecución anónima o establezca un indicador de rastreo DEVELOPER_LOG sobre sí mismo. El indicador de rastreo debe tener un nivel de registro para Apex de INFO o superior. - Para guardar los cambios, haga clic en Done (Listo).
- Para salir del cuadro de diálogo Change Log Levels (Cambiar niveles de registro), haga clic en Done (Listo).
Cuando su código se muestra en el editor de código fuente, puede ver los números de las líneas en la parte izquierda. Haga clic en el número de línea para inspectResults(results);
. Se muestra un punto rojo (1), lo que indica que se ha creado un punto de comprobación.
Ahora, puede ejecutar su código y analizarlo en la ficha Checkpoints (Puntos de comprobación).
Ficha Checkpoints (Puntos de comprobación)
Puede ver exactamente dónde se produce un error de ejecución de su código y cuáles son los valores de los objetos en ese punto mediante la ficha Checkpoints (Puntos de comprobación). Vamos a ejecutar el siguiente código para ver el punto de comprobación en acción.
Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima). Introduzca el siguiente código y ejecútelo. Asegúrese de sustituir Enter your email address por su dirección de correo electrónico.
EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('Enter your email address', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
Después de ejecutar el código Apex correctamente, abra el registro de depuración y haga clic en la ficha Checkpoints (Puntos de comprobación) para ver los resultados.
- En la tabla Checkpoints (Puntos de comprobación) se muestran el espacio de nombres, la clase y el número de línea de cada punto de comprobación. Además, se muestran la fecha y la hora de creación de cada punto de comprobación.
- En la tabla Checkpoint Locations (Ubicaciones de puntos de comprobación) se muestran el nombre de archivo, el número de línea y las iteraciones capturadas por el punto de comprobación seleccionado.
Haga doble clic en un punto de comprobación en la tabla Checkpoints (Puntos de comprobación) para ver los resultados capturados en Checkpoint Inspector. ¡Ahora empieza la diversión!
Checkpoint Inspector
- Heap (Pila). Se muestran todos los objetos incluidos en la memoria en la línea de código en la que se ejecuta el punto de comprobación.
- Symbols (Símbolos). Se muestran todos los símbolos en la memoria en una vista de árbol.
Ficha Heap (Pila)
- En Types (Tipos), haga clic en
Messaging.SingleEmailMessage
. - En Instances (Instancias), haga clic en cualquier instancia de este tipo de objeto.
- En State (Estado), puede ver los campos del objeto y sus valores.
Ficha Symbols (Símbolos)
La ficha Symbols (Símbolos) permite revisar de forma rápida y fácil los estados de varios objetos en cualquier punto de comprobación. Los símbolos son nombres únicos que hacen referencia a objetos específicos. En esta ficha se muestran todos los símbolos en la memoria en una vista de árbol.
- Para borrar los resultados del punto de comprobación de la ficha, seleccione Debug (Depurar) | Clear (Borrar) | Checkpoint Results Panel (Panel de resultados de punto de comprobación).
- Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- Vuelva a ejecutar la clase
EmailMissionSpecialist
, pero esta vez con una dirección de correo electrónico no válida, como testingemail.EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('testingemail', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
- Después de ejecutar el código, haga clic en la ficha Checkpoints (Puntos de comprobación).
La ficha Checkpoints (Puntos de comprobación) no muestra ningún resultado porque la ejecución del código no ha llegado al número de línea en la que ha establecido el punto de comprobación.
- Seleccione File (Archivo) | Open (Abrir) y abra la clase
EmailMissionSpecialist
. - Haga clic en el número de línea en la parte izquierda para
String[] toAddresses = new String[] {address}
. - Seleccione Debug (Depurar) | Clear (Borrar ) | Checkpoint Results Panel (Panel de resultados de punto de comprobación).
- Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- Vuelva a ejecutar la clase
EmailMissionSpecialist
con una dirección de correo electrónico no válida, como testingemail.EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('testingemail', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
- Haga clic en la ficha Checkpoints (Puntos de comprobación).
Verá una entrada nueva en la ficha Checkpoints (Puntos de comprobación). A continuación, puede analizar los objetos de la memoria con Checkpoint Inspector.