Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

¿ Cómo suelen tracear un error en Gambas ?
#1

Buenas!.

Me supongo que hay errores que se puede hacer y otros no. Probablemente por la sencillez del error.

En la clase Error disponemos de distintas propiedades:

Backtrace
Class
Code
Text
Where

GAMBAS
  1. ..
  2.  If Error Then Message.Error(Error.Text & gb.NewLine & Error.Where & gb.NewLine & Error.Code & gb.NewLine & Error.Class)
  3. ..



Error.Class no se puede concatenar. Smile
Puedo usar Error.Class.Name. Pero que me diga FMain, con la cantidad de código que puede tener.
Fulanito es el culpable!. El FMain!. Que se le caiga la cara de vergüenza!.

Aunque no aparece un texto o algo que lo diga, debe ser la pila de llamadas otra forma de tracear el error.
En mi caso, aparece esto:

[Imagen: McLWc88.png]

Ahí puedo seleccionar con el ratón dos lugares distintos con. Viendo que el error parte desde la instrucción más inferior.
FMain.btdnSelectDir_Click.54

Siendo esta la instrucción la que lo produce:

GAMBAS
  1.  TabStripExterior.Count = grupoextensiones.Count



Ademas de que no se pueda concatenar una clase como si fuera una cadena, naturalmente.

Por cierto, BackTrace. Devuelve un array.
 
Cita: 
Devuelve un seguimiento del estado de la pila de llamadas de función cuando ocurrió el último error.
La primera entrada de la matriz de cadenas es la llamada de función más profunda.
Si no había información de depuración disponible, o si no hubo ningún error, esta propiedad devuelve NULL.

Es una traducción con Google Translator. ¿ Qué es eso de la llamada de función más profunda ?. Vaya traducción.
Si, es la primera claro de la pila de llamadas, la de más abajo. Pero eso de profunda.

Lo que quiero decir que cuando se produce error, ya que lo hay. Este array que devuelve suele ser nulo.
¿ Eso es normal ?. Huh


Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#2

Nunca he usado BackTrace ni Class ni code.

basta con añadir al final de cada función

GAMBAS
  1.    Print error.text;;error.where 'si lo quieres en la consola de gambas para depuraciones o
  2.    message.Error(Error.text & " - " & Error.where)



Saludos

Donde dice "...basta con..." quiere decir " ...a mí me basta con...", naturalmente.

Big Grin Big Grin

No podemos regresar
    ¡Gracias!
#3

(26-10-2022, 19:41)Shordi escribió:  Donde dice "...basta con..." quiere decir " ...a mí me basta con...", naturalmente.

Big Grin

Tiene que ser terrible cuando el programa tenga tropecientas líneas.

Gambas tiene un control llamado gb.debug pero no lo he visto aún en la práctica.

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)