Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-05-2008
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Numero de linea del programa en DELPHI

Muy buenas:

Tengo algunos problemas muy raros con mis aplicaciones y quiero probar lo siguiente.

Mi aplicacion esta en Delphi 5 y se conecta por ODBC a MySql.

Muchas veces me da errores raros y quiero hacer un Try except y que en el except me diga en que linea del programa ha fallado.

Si alguien supiera como hacerlo me ahorraria un monton de tiempo de investigacion.

Muchas gracias
Responder Con Cita
  #2  
Antiguo 22-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Recuerdo haber leído algun artículo que explicaba de una forma básica cómo hacerlo. Incluso creo recordar que alguna vez en el foro se ha hablado de ello.


Otra opción es mirar algun paquete comercial que te de el trabajo hecho tipo:
* MadExcep
* Exception Magic
* EurekaLog
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 22-05-2008
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Hola:

vale, es que acabo de mirar cosas por ahi y hablan de lo que ya tenemos hecho, que es encerrar el codigo en un Try Except.

Seria mas preciso saber en que linea dio el error, supongo (no lo he investigado aun) que si se crea una TException Class o algo parecido, tendria que tener alguna propiedad que nos indiquen cosas.

Saludos
Responder Con Cita
  #4  
Antiguo 22-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jSr Ver Mensaje
vale, es que acabo de mirar cosas por ahi y hablan de lo que ya tenemos hecho, que es encerrar el codigo en un Try Except.

Seria mas preciso saber en que linea dio el error
El problema es la segunda parte de lo que comentas.
Piensa que tu ejecutable, el programa, final no se organiza con líneas de código como el que programas en Delphi. Una vez compilado y linkado el ejecutable es otro programa diferente (por decirlo así) en un lenguaje diferente (código máquina).
Cuando una de esas líneas en código máquina falla, no tienes la correspondencia con el programa original, por lo tanto no es posible saber la línea que falló (a no ser qué...).

A no ser que en tu programa guardes información de Debug y en ejecución intentes utilizar esa información de Debug para conocer cual es la línea original del programa que corresponde a la que ha fallado.

Eso es algo que no es sencillo y que hacen estos paquetes, de ahí que cuando "salte" una excepción muestren información extendida como la que se ve en las imágenes que he adjuntado en el anterior post (entre esas informaciones está la pila de llamadas, el número de línea,...)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 22-05-2008
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Claro

Hola:

Es como lo dices, lo que se me ocurrio es numerar en una variable cada 10 lineas sumarle entonces sabes en todo momento en que trozo de codigo te ha fallado y al dar la excepcion despliegas el numero de linea ultimo.

Con esto sabras prefectamente que esta despues de esa linea y antes de la siguiente.

creo que hare eso, por ahora, total, tengo muy pocos procesos muy criticos y esa solucion me sirve.

Gracias
Responder Con Cita
  #6  
Antiguo 22-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jSr Ver Mensaje
Es como lo dices, lo que se me ocurrio es numerar en una variable cada 10 lineas sumarle entonces sabes en todo momento en que trozo de codigo te ha fallado y al dar la excepcion despliegas el numero de linea ultimo.
Si tienes una cuantas líneas, con eso y el error/clase que te devuelve la excepción podría valer, pero si tienes muchas líneas me parece una solución costosa de mantener.

A medida que vayas modificando tu código no se cómo va a quedar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 22-05-2008
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Naturlich

Claro, pero de cualquier manera, no tengo otra solucion, ademas esa solucion no sera eterna, el codigo de esa unidad casi no se toca.

Por otro lado si que es verdad que algun otro programador o yo mismo no recuerde lo que he hecho antes y lo enredemos mas de lo que esta.

bueno, muchas gracias por entreneterte con mis tonterias.

saludos

JoSeX
Responder Con Cita
  #8  
Antiguo 22-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Échale un vistazo a esta página. Tal vez te pueda servir, Explica un poco pòr encima el funcionamiento de los MAP files. A partir de ahí puedes continuar buscando.
Esta también es interesante.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 22-05-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Yo uso el Eurekalog (mencionado en el segundo mensaje por Neftali) y me va muy bien. Al saltar una excepción te ofrece mucha mas información y el Call stack es muy completo y claro (numero de linea, instrucción llamada, ves los hilos... etc).

Estoy muy contento con el EurekaLog.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
obtener numero de linea de un Tmemo gaz-g7 Varios 2 27-06-2007 23:10:03
numero de linea de un TreeView Racy Varios 1 23-10-2005 18:22:10
obtener el numero de linea. maruenda Varios 1 30-10-2004 05:11:05
como saber numero de linea, nombre de archivo,funcion por codigo orfeo OOP 0 30-07-2004 18:42:15
Número de Línea Ulises Providers 2 21-07-2003 16:29:37


La franja horaria es GMT +2. Ahora son las 21:15:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi