Empiece a realizar un seguimiento de su progreso
Inicio de Trailhead
Inicio de Trailhead

Inspeccionar objetos en puntos de comprobación

Objetivos de aprendizaje

Después de completar esta unidad, podrá:
  • 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 astronave 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 desempeño 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 tediosa. ¡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.

Vamos a establecer un punto de comprobación en la clase EmailMissionSpecialist que hemos creado anteriormente.
  1. Seleccione File | Open (Archivo | Abrir) y abra la clase EmailMissionSpecialist.
  2. Seleccione Debug | Change Log Levels (Depurar | Cambiar niveles de registro).
  3. En la selección General Trace Settings for You (Configuración de seguimiento general para usted), haga clic en Add/Change (Agregar/Cambiar).
  4. Establezca el nivel de registro de ApexCode en FINEST (Máxima precisión).
    Nota

    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.

  5. Para guardar los cambios, haga clic en Done (Listo).
  6. 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.

Establecer 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 | Open Execute Anonymous Window (Depurar | Abrir ventana de ejecución anónima). Ingrese el siguiente código y ejecútelo. Asegúrese de sustituir Enter your email address por su dirección de email.

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.

Ficha Checkpoints (Puntos de comprobación)
  • 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

Checkpoint Inspector incluye dos fichas: Heap (Pila) y Symbols (Símbolos).
  • 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)

La ficha Heap (Pila) incluye una serie de paneles muy útiles para la depuración, como el panel Types (Tipos). En este panel se muestra para cuántos objetos se han creado instancias y la memoria que consumen en bytes. Veamos los detalles capturados por el punto de comprobación que ha establecido.
  1. Debajo de Types (Tipos), haga clic en Messaging.SingleEmailMessage.
  2. Debajo de Instances (Instancias), haga clic en cualquier instancia de este tipo de objeto.
  3. Debajo de State (Estado), puede ver los campos del objeto y sus valores.
Ficha Heap (Pila) en Checkpoint Inspector

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.

Ficha Symbols (Símbolos) en Checkpoint Inspector
Como comandante, no solo necesita confirmar que los sistemas funcionan correctamente. Además, es necesario hacer un seguimiento de los errores. Veamos cómo Checkpoint Inspector le ayuda a comprender mejor el código.
  1. Para borrar los resultados del punto de comprobación de la ficha, seleccione Debug | Clear | Checkpoint Results Panel (Depurar | Borrar | Panel de resultados de punto de comprobación).
  2. Seleccione Debug | Open Execute Anonymous Window (Depurar | Abrir ventana de ejecución anónima).
  3. Vuelva a ejecutar la clase EmailMissionSpecialist, pero esta vez con una dirección de email 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.');
  4. 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.

Resultados de la ficha Checkpoints (Puntos de comprobación)
Vamos a agregar un punto de comprobación en una parte anterior del código para poder capturar la información del nuevo punto de comprobación antes de que el código detecte el error testingemail.
  1. Seleccione File | Open (Archivo | Abrir) y abra la clase EmailMissionSpecialist.
  2. Haga clic en el número de línea en la parte izquierda para String[] toAddresses = new String[] {address}.
  3. Seleccione Debug | Clear | Checkpoint Results Panel (Depurar | Borrar | Panel de resultados de punto de comprobación).
  4. Seleccione Debug | Open Execute Anonymous Window (Depurar | Abrir ventana de ejecución anónima).
  5. Vuelva a ejecutar la clase EmailMissionSpecialist con una dirección de email 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.');
  6. 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.

Resultados de la ficha Checkpoints (Puntos de comprobación)