Si queremos producir un Oracle BRM software, debemos cumplir algunos requisitos relativos a nuestro proceso de desarrollo. Es especialmente importante incorporar buenas técnicas de prueba y depuración en nuestro proceso de desarrollo.
Las pruebas son un proceso de búsqueda de fallos o errores en un producto de software que realiza manualmente un probador o que puede automatizarse.
Depuración es el proceso de encontrar y resolver defectos o problemas dentro de un programa informático que impiden el correcto funcionamiento del software o de un sistema informático. Básicamente, es un proceso de reparación de los fallos encontrados en la fase de pruebas. El programador o desarrollador es el responsable de la depuración y no puede automatizarse.
Índice
Depuración del código personalizado de los opcodes de la política Oracle BRM
Al personalizar los opcodes de la política en Oracle BRM A menudo es necesario depurar algún código para encontrar posibles fallos o analizar el comportamiento del código. Se pueden realizar algunos análisis básicos con el registro de algunos mensajes de depuración y el análisis de los registros, pero un método mucho más avanzado y potente es utilizar una herramienta independiente: el depurador. En este artículo veremos cómo podemos utilizar el depurador de código abierto GDB para depurar un proceso Oracle BRM cm que realiza también algo de código personalizado (vea la imagen de abajo).
GDB es un depurador de código abierto que proporciona muchas herramientas avanzadas y potentes para analizar y depurar nuestro código. Algunas de las características básicas de GDB son los puntos de interrupción (condicionales/no condicionales), los relojes, las trazas hacia atrás y la ejecución incremental de código. Por supuesto, también puede ver y modificar los valores de las variables y llamar a diversas funciones. Veamos ahora cómo utilizamos GDB con cm process en la práctica.
Depuración en la práctica
En primer lugar, debemos obtener un PID de nuestro proceso CM:
ps x
Encuentre el PID del proceso CM y utilícelo para conectarse a ese proceso con GDB:
gdb cm
Ahora se abre el shell de GDB donde podemos ejecutar varios comandos que GDB soporta. Cada nueva conexión que se establece con CM provoca el desove de un nuevo proceso hijo CM desde el CM padre. Queremos que GDB también rastree dichos procesos hijos. Ejecute el siguiente comando en el shell de GDB:
(gdb) set follow-fork-mode child
Dependiendo de sus necesidades puede que también quiera explorar los comandos set detach-on-fork y attach. Ahora establezcamos algún punto de ruptura en la implementación de algún opcode de política, como en el siguiente ejemplo:
(gdb) break fm_act_pol_post_reauthorize.c:192
Cuando ahora activemos la ejecución del opcode de la política, ésta será interrumpida por el punto de interrupción (o incluso antes nos notificará que se ha generado un nuevo hijo). Entonces podremos seguir el flujo de código paso a paso utilizando los comandos next (abbr. n) o step. Si estamos interesados en el valor de alguna variable, podemos imprimirlo utilizando:
También disponemos de muchas más funciones avanzadas y potentes que se describen en detalle en la documentación del BGF y en la ayuda integrada. Le invitamos a investigarlas para ver cómo pueden ayudarle.