Debugger


([N4] Infortic) #1

Hola.

¿El debugger no funciona en triggers?, no me parece raro que no vaya el tercer plano, pero no se ha comentado nada al respecto.


([N4] ns) #2

Hola,

si no funciona en triggers es una faena…


([N4] Infortic) #3

A mi no me va, no sé si se me escapa algo…


([N4] psapoznik) #4

Hola, esto es lo que dice en la base de conocimiento

Ambito de actuación
Se pueden depurar procesos y manejadores de eventos ejecutados desde vClient en primer plano.

Es posible depurar procesos que son llamados desde otros procesos o manejadores que se estén ejecutando en 1º plano.

Se pueden depurar funciones. Pero no se puede entrar en ellas cómo se entra en un proceso, es decir, si se llama a una función de proceso, se pasa por la línea, con lo que para hacer debug de la función debemos poner un punto de interrupción en la función de proceso.

No es posible depurar procesos ejecutados desde vDataClient.

No es posible depurar procesos ejecutados en 2º o 3er plano.

No es posible depurar triggers de tablas ni procesos ejecutados desde los triggers. Para estos casos recomendaremos al programador copiar el código en un proceso y ejecutarlo desde un botón de un formulario o una acción, por ejemplo.

No es posible depurar eventos disparados con la señal de pre-inicialización del marco AUTOEXEC.

Si ejecutamos en debug un proceso de un proyecto que está protegido, el sistema solicitará que se introduzca la contraseña de edición del proyecto, si se introduce la contraseña válida, continuará la depuración, en caso contrario, se detendrá.

Saludos


([N3] pacosatu) #5

Hola.

Que no se puedan depurar procesos en 2º plano y en 3º plano (lo que incluye a los triggers) no es un capricho de Velneo, es algo inherente a los procesos que se ejecutan en diferentes hilos y espacios de memoria.

Lógicamente el Depurador solo puede tomar el control del hilo principal de la Aplicación y por lo tanto solo puede atender a los puntos de interrupción colocados en el hilo principal, es decir, el 1º plano. Quizás el 2º plano sí que podría depurarse, generando interrupciones por código mediante un comando Assert, ya que comparte el mismo espacio de memoria que el 1º plano.

Para los procesos JavaScript ignoro la razón por la que no pueden depurarse, lo mismo que los procesos QML.
Seguramente la arquitectura de Velneo, con 3 motores de ejecución diferentes, Velneo, JavaScript y QML, y en espacios de memoria desconectados, hace que diseñar un depurador realmente eficaz sea una tarea complicada.

De momento, lo que hay ya es un gran avance.

Saludos
Paco Satué


([N1] wikan) #6

Buenos días,
si me he fijado que las cestas no aparecen en el debug. También sería interesante, no se si será posible, ver la lista resultante de una búsqueda o incluso mejor si se pudiera ver por lo índices que está entrando.


([N4] Infortic) #7

Esperaba que no funcionara en triggers la verdad, esa lista de limitaciones no la había leído, nos quedan fuera el 3er plano, triggers, actualizadores, cestas…


([N3] synetic) #8

Tal vez Velneo podría haber ignorado en modo depuración la ejecución de procesos en tercer plano y ejecutarlos en primer plano para poder depurar, y que lo hiciera automáticamente sin tener que cambiarlo nosotros, depurar y volver a cambiar a 3P.

Ya para depurar triggers, es otra cosa, pero en este momento no sabemos con exactitud que hacer el vServer, solo el valor resultante al grabar. Sería necesario depuración de triggers.

Aún así, ya me ha ahorrado un tiempo, es una gran utilidad.