Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Lazarus y el problema con el debugger... (https://www.clubdelphi.com/foros/showthread.php?t=66916)

Lord Delfos 18-03-2010 17:24:07

Lazarus y el problema con el debugger...
 
Bueno, hace mucho que no probaba Lazarus y últimamente me han dado ganas de mirarlo y probarlo para ver cómo va la cosa.

Lo instalé, todo muy lindo. Pero cuando quiero correr cualquier programa me salta una excepción "External: SIGSEGV".

Por lo que pude encontrar por la red se trata de un problema con el debugger. Si uno lo deshabilita todo viaja fenomenal, pero claro, uno no tiene debugger...

Al parecer nadie en toda la #@% Internet sabe cómo solucionarlo, o los hilos que encontré se van de tema antes de que alguien puede decir qué hay que hacer :).

Así que pregunto, ¿alguno de ustedes solucionó el problema?

Gracias mil.

BrunoBsso 18-03-2010 17:26:38

A mí me pasó exactamente eso pero con Delphi2009 el año pasado.
Era un problema con el debugger y para "arreglarlo" había que desactivarlo.
Nunca encontré la solucción, hasta que instalé el mismo IDE en otro SO (en realidad otra partición con el mismo SO).
No sé a qué se habrá debido, algún archivo defectuoso al instalarse, pero al instalarlo en "otra máquina" me anduvo bien.

Ñuño Martínez 18-03-2010 19:03:28

Los problemas de Free Pascal con El Depurador (me refiero a GDB, ¿cuál si no?) vienen de largo.

Lo que ocurre es que desde el principio se intentó que FPC fuera lo más compatible posible con el proyecto GNU, por eso se intentó que la depuración se realizara con GDB. El problema es que GDB asume que todos los programas que depura han sido generados por GCC. GCC incluye un compilador Pascal, sin embargo es un proyecto muerto desde hace años y los desarrolladores de GDB ya no lo tienen en cuenta. FPC intentó presionar para que GDB incluyera un mejor soporte a los lenguajes Pascal y Object Pascal, sin mucho éxito por lo que se ve.

En las últimas versiones de FPC se está haciendo un esfuerzo por añadir soporte a otros depuradores (dwarf y valgrind, principalmente) pero por lo que creo, el soporte para estos es todavía peor que el de GDB, aunque me han dicho que con valgrind se puede uno manejar "decentemente" teniendo en cuenta que esta aplicación no es un depurador sino un analizador de memoria.

Más de una vez he leído en los foros y listas de correo de FPC y Lazarus a gente proponiendo crear un depurador propio, pero nunca termina de cuajar. Eso sí: la FCL incluye en su clase TProcess una propiedad que hace que el proceso se ejecute en "modo depuración". Por desgracia no he encontrado lo que significa eso.

Lord Delfos 18-03-2010 23:59:25

Upa, Ñuño, me tiraste la alegría a la @%&# :)

La verdad es que sin debugger no puede haber un desarrollo serio... En definitiva convierte a Lazarus en un juguete... Por lo menos desde mi punto de vista.

Es una lástima realmente. Como va la cosa con Delphi, estaba pensando seriamente el moverme pa'l lado de FPC+Lazarus... pero ahora con este asunto, medio como que no me cabe mucho la idea...

jorosmtz 04-04-2010 02:54:28

Ñuño, me acabas de matar la ilusión a mi también :(, Manejé Lazarus hace algunos añitos atrás y tenía intención de volver a instalarlo para hacer una que otra aplicacioncita. Y aunque yo no he tenido problemas de errores ni nada de eso, el saber que posiblemente este el debugger deshabilitado me da un no se que que que se yo, que ya no me dan ganas de programar en Lazarus.... Bueno, tendría que volverlo a instalar y verificar lo del debugger para ver si está deshabilitado. Déjame ver si en una instalación donde me compile y corra sin errores está sin debugger, y luego les digo...

Casimiro Notevi 04-04-2010 02:55:45

Yo estoy usando la última versión y funciona bien :)

Lord Delfos 04-04-2010 03:33:00

Suertudo.:mad:

Por lo que he leído por ahí, a algunos les anda y a otros no, incluso en la misma computadora con el mismo sistema operativo, una vez anda y después de formatear y reinstalar, ya no.

Así que, Casimiro, sos uno de los suertudos a los que les anda... ¿No hay un emoticón de envidia, no?

Casimiro Notevi 04-04-2010 03:40:34

Yo lo he instalado así:
Código:

#!/bin/sh
gpg --keyserver hkp://pgp.mit.edu:11371 --recv-keys 6A11800F
gpg --export 6A11800F | sudo apt-key add -
echo "deb http://www.hu.freepascal.org/lazarus/ lazarus-stable universe" \
>/etc/apt/sources.list.d/lazarus.list
apt-get update
apt-get install lazarus
----------------------------------
chmod +x nombre_archivo
-----------------------------------
sudo ./nombre_archivo

Pero en lugar de crear el script y ejecutarlo, lo he hecho paso a paso cada línea "manualmente" en una ventana de terminal

jorosmtz 04-04-2010 07:20:34

Saben, pues el debugger está activado, y ejecute todo bien, en Windows 7.... :confused:

Bueno, soy de los suertudotes diría Lord Delfos...

Ñuño Martínez 05-04-2010 11:09:34

Voy a completar información.

Al parecer, las últimas versiones parecen más propicias para la depuración. Hay algunas cosillas que fallan, pero parece ser que, a grosso modo, funciona, solo que como habéis dicho algunos, dependiendo de la configuración y de la versión instalada (nótese que ahora mismo sale casi una nueva versión diaria, solo que no la publican sino que se obtiene vía SVN y hay que compilarla ya que sólo se publica código fuente).

Yo no uso las versiones SVN sino que instalo las "estables. Ahora mismo tengo la 0.9.28.2-0 beta, compilada el siete de Octubre de 2009. En esta versión la depuración funciona según le dé. A veces (las menos) puedo ejecutar paso a paso y ver el contenido de variables y objetos sin problemas, pero normalmente o no puedo ver el contenido de todas las variables o después de un rato me suelta una excepción de las gordas o se salta algún punto de ruptura. Cosas que pasan, aunque muchas veces es suficiente.

De todas formas, en la lista de correos del compilador Free Pascal llevan una temporada larga discutiendo el tema de la depuración, y no me extrañaría nada que nos den la sorpresa y en un futuro próximo (tal vez con la versión 2.6) la depuración funcione de forma estable y sin problemas, bien con GDB, bien con otro depurador similar.

Casimiro Notevi 05-04-2010 11:33:46

Cita:

Empezado por Ñuño Martínez (Mensaje 359235)
[..]De todas formas, en la lista de correos del compilador Free Pascal llevan una temporada larga discutiendo el tema de la depuración, y no me extrañaría nada que nos den la sorpresa y en un futuro próximo (tal vez con la versión 2.6) la depuración funcione de forma estable y sin problemas, bien con GDB, bien con otro depurador similar.


je, je... muy chistoso :)
Ojalá esté solucionado como mucho en la versión 1.0 :rolleyes:

Ñuño Martínez 05-04-2010 11:47:10

Me refiero a la versión 2.6 del compilador (la última es la 2.4.algo), no de Lazarus. :p

Cita:

Empezado por Ñuño Martínez (Mensaje 359235)

De todas formas, en la lista de correos del compilador Free Pascal llevan una temporada larga discutiendo el tema de la depuración, y no me extrañaría nada que nos den la sorpresa y en un futuro próximo (tal vez con la versión 2.6) la depuración funcione de forma estable y sin problemas, bien con GDB, bien con otro depurador similar.

¿Ves? :D

Casimiro Notevi 05-04-2010 12:45:23

Error imperdonable:



Ya en serio, es imprescindible, por supuesto, si quieren seguir adelante con el proyecto, el contar con un buen depurador.

jorosmtz 06-04-2010 04:45:32

Cita:

Empezado por Ñuño Martínez (Mensaje 359235)

De todas formas, en la lista de correos del compilador Free Pascal llevan una temporada larga discutiendo el tema de la depuración, y no me extrañaría nada que nos den la sorpresa y en un futuro próximo (tal vez con la versión 2.6) la depuración funcione de forma estable y sin problemas, bien con GDB, bien con otro depurador similar.

Ñuño, yo también me fui con la "finta" (impresión) de que te referías a la versión 2.6 de Lazarus... :D Lo que pasa es que cuando me preguntan o sugieren alguna mejora para las aplicaciones que hago, o cuando sugiero o pregunto algo para las aplicaciones de mis compañeros, si por ejemplo van en la versión 1.5, yo uso mucho la expresión: "tal vez en la versión 7.3 lo implemente".

La verdad yo creí que por eso lo decías y ya me andaba riendo... :p

Ñuño Martínez 06-04-2010 10:02:28

Si es que con tanta versión y tanto SVN uno se lía cosa mala...:D

donald shimoda 10-05-2010 22:15:24

Cita:

Empezado por Lord Delfos (Mensaje 359146)
Suertudo.:mad:

Por lo que he leído por ahí, a algunos les anda y a otros no, incluso en la misma computadora con el mismo sistema operativo, una vez anda y después de formatear y reinstalar, ya no.

Así que, Casimiro, sos uno de los suertudos a los que les anda... ¿No hay un emoticón de envidia, no?

Digo, no será estas intentando hacer debug de una aplicación multithread ? Si es el caso revisa el wiki de lazarus (de hecho es recomandable antes de tocar lazarus, como con cualquier otra herramienta).

Amigos, lazarus no es delphi. El debugger es mediocre pero sirve. Es decir, por todo lo demás que nos da lazarus vale la pena hacer el esfuerzo con ciertos detalles. Y nuevamente, antes de empacarse miren el wiki, o entren al irc canal #lazarus, como dios manda. ;)

Saludos

Lord Delfos 10-05-2010 23:17:39

Bueno Donald, yo estuve "indagando" sobre el asunto y leyendo foros y la wiki y francamente la situación es desesperante.

Lazarus no es Delphi, eso seguro. Es gratis, es multiplataforma, es abierto... Ahora, el problema es que no anda. O mejor dicho, el problema es que el debugger que usa FPC no anda.

Por más gratis que sea, pues no anda. Es decir, me están regalando... nada.

Es una verdadera lástima, porque está muy buena la idea y me parece genial, pero... Así está la cosa.

Cita:

Empezado por donald shimoda (Mensaje 363471)
El debugger es mediocre pero sirve.

Es que no, precisamente, no anda. Nada anda. Es decir, si uno quiere compilar y correr el programa hay que DESHABILITAR el debugger y, aunque no nos guste, sin debugger no puede haber programación seria. Yo al menos no me atrevería a encarar un proyecto sin debugger. :)

Qué sé yo, espero que algún día se animen a hacer su propio debugger así dejo esta |@·$ en la que se ha convertido Delphi.

donald shimoda 10-05-2010 23:32:03

Cita:

Empezado por Lord Delfos (Mensaje 363488)
Bueno Donald, yo estuve "indagando" sobre el asunto y leyendo foros y la wiki y francamente la situación es desesperante.

Lazarus no es Delphi, eso seguro. Es gratis, es multiplataforma, es abierto... Ahora, el problema es que no anda. O mejor dicho, el problema es que el debugger que usa FPC no anda.

Amigo, entiendo tu desesperación, pero estas equivocado. Yo uso el debugger en windows, en linux, me falta mac os x nada mas(pero luego del último chiste de jobs por ahora me mantengo alejado). Créeme, si no funcionara te lo diría.

Lo que sucede es que la gente no se toma el tiempo de LEER como se usan las herramientas. Toda herramienta tiene su curva. Los usuarios de delphi creen que abren lazarus y es delphi. Nada mas lejano de la realidad. Lamento decirlo: es mejor que delphi. El concepto es terriblemente mas poderoso que nuestro amigo de años (delphi).
Te explico, tengo un servidor con 2 mill de lineas de código aprox. En delphi 2007, 2010, 2011(ups nunca dije eso) la simple tarea de autoinvocar un procedimiento para un componente no ME funciona. Es decir, autocompletar, anulado. Alguien podría decir, y bueno, algun problema con tus libs, paths, whatever. El tema es que : Mismo proyecto, abierto en ubuntu 10.04, lazarus trunk version, funciona como los dioses. Click en procedure vuela al código donde esta declarado, autocompletar, lo que sea. El ide VUELA, ni comparación con la ped**** de los ides galileo, por dios!

Resultado, termino editando y compilando para linux en lazarus, y editando (en lazarus) y compilando en delphi para windows. Esto lo hago hace años.

Cita:

Empezado por Lord Delfos (Mensaje 363488)
Es que no, precisamente, no anda. Nada anda. Es decir, si uno quiere compilar y correr el programa hay que DESHABILITAR el debugger y, aunque no nos guste, sin debugger no puede haber programación seria. Yo al menos no me atrevería a encarar un proyecto sin debugger. :)

Es que no es el caso de todo el mundo, a mi me funciona el debugger por ejemplo, y no me considero un gurú en lazarus. Pero como te decía, sabes que es lo mejor? Entras a la red de IRC , canal #lazarus, y están los desarrolladores ayudandote a resolverlo. Incluso si existe un fallo real, TU AYUDA es la que provoca que se resuelva el problema, en tiempo real, conversando con los verdaderos gurus, lo he hecho mil veces! Quien puede ofrecer algo mejor que eso???

Ahora claro que hay mucha gente a la que no le interesa dedicarle un rato a resolver un error en lazarus, solo esperan bajarlo y que funcione todo a la perfección. Pues... para eso tienes delphi. No porque funcione a la perfección sino para que puedas maldecir a alguien cuando no lo haga y rezar que en antes de las próximas 5 versiones (si si, no exagero, sino echenle una miradita a QC) estén solucionando el bug.

En lazarus es tan simple como:

svn update
make clean all
salio!

En fin, es dificil explicarlo si no lo han vivenciado muchachos.

Saludos

Casimiro Notevi 10-05-2010 23:43:25

En mi caso funciona, pero con linux, no sé si con windows funcionará.


Lord Delfos 10-05-2010 23:46:30

Bueno, creo que acá hay dos cosas diferentes. Según lo veo yo.

[1] Hasta donde sé, nadie sabe porqué no funciona. Y cuando digo nadie digo nadie, ni los que hacen Lazarus, ni los que hacen FPC, ni los que hacen el debugger (a éstos en realidad no les importa). Nadie está seguro de qué hacer. Todo lo que he visto y leído básicamente apunta a eso, no sabemos qué pasa ni cuándo lo vamos a arreglar, ni qué podés hacer para solucionarlo.

[2] Qué objeto tiene (y acá se me van a venir los defensores del Open Source como locos :)). Digo, qué objeto tiene hacer un programa que anda algunas veces y otras no. Es decir, desde que uno hace un programa, asume que la gente que lo usa no lo quiere hacer, por eso no lo programan ellos mismos, sino que se bajan lo que hizo otro. Yo no me quiero poner ha arreglar un programa. Programas que no andan tengo un montón y de mi propia autoría :). Eso de que es gratis y por eso se debe tolerar que falle, para mí no aplica.

Pero esto tiene otro problema aún más grave. Imaginate en una empresa, formatean la máquina y ¡pum! sin Lazarus porque el debugger no camina... Y peor aún, no se sabe cuándo o ni siquiera si va a volver a andar... El cliente llamando desde Hong Kong preguntando ¿dónde está mi #4% programa? ¿Y vos qué le decís? ¿Qué no te anda el debugger?

Ahí es donde Lazarus pierde por goleada.

PD: Lo del debugger no es un tema de configuración. Anda o no anda. Punto. Si anda, ¡bien! y si no... pues... "juiste".


La franja horaria es GMT +2. Ahora son las 06:43:50.

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