AE activado (AE local)
Puede utilizar GDB en modo AE local. En este caso, añada la ruta GDB al AE especificando NZAE_GDB_PATH al registrar el AE, así como especificando el terminal. Por ejemplo:
--environment "'NZAE_TERMINAL'='/dev/pts/4'" –environment \
"'NZAE_GDB_PATH'='/nz/kit/sbin/gcc/bin/gdb'"
Puedes configurar la depuración del AE local utilizando el caso applyopcpp (ver código en la sección Función escalar del lenguaje C++). Tenga en cuenta que --sig en register_ae ha cambiado. Por lo tanto, la invocación SQL debe utilizar apply en lugar de applyop_cpp para reflejar el cambio a --sig. Además, el --exe en compile_ae y register_ae también ha cambiado.
- Añade la ruta GDB al AE:
$NZ_EXPORT_DIR/ae/utilities/bin/compile_ae --language cpp --template compile \ --exe testapply --compargs "-g -Wall" --linkargs "-g" applyopcpp.cpp \ --version 3 $NZ_EXPORT_DIR/ae/utilities/bin/register_ae --language cpp --version 3 \ --template udf --sig "apply(varargs)" --return "double" \ --exe testapply --environment "'NZAE_TERMINAL'='/dev/pts/4'" \ --environment "'NZAE_GDB_PATH'='/nz/kit/sbin/gcc/bin/gdb'" - Añade un stub para llamar a la función lógica realizando el siguiente paso:
En la ventana asociada al terminal, ejecute sleep 1000000 en el terminal para evitar que el shell que se ejecuta en ese terminal interfiera con la E/S estándar.
Cuando se ejecuta el SQL, se cuelga porque el depurador está activo y aparece el prompt GDB en la ventana de terminal. A continuación, puede ejecutar comandos normales GDB y nzsql espera hasta que salga de GDB, matar el sueño para volver a la línea de comandos del shell.
Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... (gdb) bt No stack. (gdb) b main Breakpoint 1 at 0x8049278: file applyopcpp.cpp, line 19. (gdb) c The program is not being run. (gdb) r Starting program: /nz/export/ae/applications/dev/admin/host/testapply [Thread debugging using libthread_db enabled] [New Thread 0xf7f0bad0 (LWP 28566)] Breakpoint 1, main () at applyopcpp.cpp:19 19 NzaeApiGenerator helper; (gdb) c Continuing. [New Thread 0xf7f0ab90 (LWP 28571)] in evaluate [Thread 0xf7f0ab90 (LWP 28571) exited] Program exited normally. (gdb) q