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:

  1. Abra un nuevo terminal Linux en el host.
  2. Ejecute el comando tty Linux para obtener su nombre:
    $ tty
     /dev/pts/4
    
  3. 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.
  4. 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.