Uso de AE para cargar una herramienta de diagnóstico o depuración
Usar el AE runtime para cargar una herramienta de diagnóstico/depuración es más complejo que adjuntarla manualmente vía GDB porque los AE no tienen, por defecto, un terminal, por lo que debes proporcionar uno. Para crear un terminal:
- Abra un nuevo terminal Linux en el host.
- Ejecute el comando tty Linux para obtener su nombre:
$ tty /dev/pts/4 - Ejecute un sleep largo en el terminal (como sleep 1000000) para evitar que el shell interfiera con AE y la herramienta de diagnóstico IO.
- Registre el AE para utilizar este terminal utilizando la variable de entorno AE NZAE_TERMINAL:
--environment "'NZAE_TERMINAL'='/dev/pts/4'"
Debe modificar el registro tanto para ejecutar la herramienta como para darle los parámetros adecuados para ejecutar el AE. Para ello se utilizan tres variables de entorno AE del sistema:
NZAE_HOST_ONLY_NZAE_EXECUTABLE_PATH=<path of tool>
NZAE_NUMBER_PARAMETERS=<integer: number of parameters>
NZAE_PARAMETER1=<tool specific>
NZAE_PARAMETER2=<tool specific>
Tenga en cuenta que en el pseudocódigo anterior, el número de parámetros es específico de la herramienta y de la aplicación.
La funcionalidad AE tiene un mecanismo incorporado para ejecutar GDB (para más información, consulte Trabajar con GDB ). Este ejemplo es un modelo para utilizar GDB y otros depuradores y herramientas. El ejemplo utiliza el terminal /dev/pts/7, que está ejecutando sleep 1000000.
$NZ_EXPORT_DIR/ae/utilities/bin/compile_ae --language system --version 3
--template compile \
--compargs "-g -Wall" --linkargs "-g" --exe testcapi
/home/nz/src/cpp/ae/testcae/testcapi.c
Observe en la compilación anterior que --compargs y --linkargs se utilizan para configurar la compilación y el enlace para producir símbolos de depuración.
$NZ_EXPORT_DIR/ae/utilities/bin/register_ae --language system --version 3
--template udtf
--sig "testcapi_debug(int, double, varchar(30))" \
--return "table(a int, b int, c double, d double, e varchar(255), \
f varchar(255))" \
--exe testcapi --noparallel --level 1 \
--environment "'NZAE_TERMINAL'='/dev/pts/7'" \
--environment
"'NZAE_HOST_ONLY_NZAE_EXECUTABLE_PATH'='/nz/kit/sbin/gcc/bin/gdb'" \
--environment "'NZAE_NUMBER_PARAMETERS'='2'" \
--environment "'NZAE_PARAMETER1'='--args'" \
--environment \
"'NZAE_PARAMETER2'='/nz/export/ae/applications/mydb/myusr/host/testcapi'"
En este ejemplo, el ejecutable ejecutado por el AE runtime es el propio depurador. La aplicación AE se especifica como argumento para el depurador. La opción --args es una opción de GDB, no de AE.