Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Debuggers para Delphi (https://www.clubdelphi.com/foros/showthread.php?t=48401)

xEsk 24-09-2007 17:04:43

Debuggers para Delphi
 
Hola, me estoy volviendo loco xD

Llevo algunos días amargado, literalmente xD Es un bug de esos que salta de vez en cuando, y para arrizar el rizo esta perdido en algún Thread (el código tiene 4 Threads corriendo, sin contar el del programa principal).

El debugger del Delphi 2007 no me ayuda mucho, él detecta cuando explota el Thread, porqué en el "Event Log" cuando falla pone: "Thread Exit... bla bla" pero no salta el Error en pantalla, el sigue para delante, hasta que en algún momento hay que utilizar el Thread explotado, y entonces si salta, pero no me es de mucha utilidad... porque el daño ya esta hecho.

A veces explota a sitios "sin mucho sentido", eso si, siempre a los mismos sitios "sin sentido" xD, no es muy caprichoso, hay que agradecérselo xD

La cosa es: Conocéis algún Debugger bueno para el Delphi? He probado el EurekaLog 6.0.7 (la versión demo) y no esta nada mal, pero sigue sin detectar el problema... ya que salta cuando salta el del Delphi, pero con mas información que un Access violation XXX (y se agradece xD).

PD.: He probado también la técnica de: "Déjalo un tiempo y ya veras como lo solucionas..." y ni con estas, hehehe.

Editado: Se me olvidaba decir, que incluso puse nombres a los Threads, para que fuera mas fácil encontrarlo, pero el Delphi suda de ellos en su Debugger, y solo pone el nombre al último Thread creado, al resto los deja con el número.

Saludos.

Lepe 24-09-2007 21:14:11

Hay un tema llamado "Debuguear en tiempo de ejecución", pero quizás tampoco ayude mucho, al menos muestra el procedimiento donde ocurrió, la línea de código y 7 o 10 llamadas del Call Stack.

¿Has mirado el Call Stack cuando salta la excepción? Con suerte, puedes ver la sucesión de llamadas que se han hecho, quizás por ahí puedas acotar el error.

Otra técnica sería montar un Log, de forma que al entrar en tal o cual rutina notifiques un texto desde el thread al programa principal (obviamente con syncrhonize) y a partir de ahí, analizar las llamadas que se han hecho, valor de variables, etc.

Saludos

xEsk 25-09-2007 15:08:10

Gracias por la información y las sugerencias.

Lo que he hecho es implementar una sencillo log, que funciona sólo si esta definida la directriz "DEBUG" y se le pueden mandar mensajes al log, que se van guardando en un fichero de texto.

Saludos.


La franja horaria es GMT +2. Ahora son las 01:11:37.

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