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. |
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. |
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. |
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... |
Ñ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...
|
Yo estoy usando la última versión y funciona bien :)
|
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? |
Yo lo he instalado así:
Código:
#!/bin/sh |
Saben, pues el debugger está activado, y ejecute todo bien, en Windows 7.... :confused:
Bueno, soy de los suertudotes diría Lord Delfos... |
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. |
Cita:
je, je... muy chistoso :) Ojalá esté solucionado como mucho en la versión 1.0 :rolleyes: |
Me refiero a la versión 2.6 del compilador (la última es la 2.4.algo), no de Lazarus. :p
Cita:
|
|
Cita:
La verdad yo creí que por eso lo decías y ya me andaba riendo... :p |
Si es que con tanta versión y tanto SVN uno se lía cosa mala...:D
|
Cita:
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 |
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:
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. |
Cita:
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:
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 |
En mi caso funciona, pero con linux, no sé si con windows funcionará.
|
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". |
Cita:
Apenas estas comenzando a usarlo ya sabes que gracias a un designio divino se determina si funciona o no funciona, increíble tu nivel de *sabiduría*. Lo único coherente que decís es que no es para vos, eso quedo clarísimo. No pierdas mas el tiempo con lazarus, delphi funciona siempre. :rolleyes: |
Si cuarenta tipos que saben ochenta mil veces más que yo dicen que la cosa no camina, es porque NO CAMINA.
Yo podré ser un pelotudito de cuarta, pero los tipos que sí saben de qué mierda están hablando dicen que la cosa no anda. Qué querés que le haga, no anda, ellos lo dicen, no yo. |
Cita:
|
Sí sabés más que los que hacen el programa, entonces decime cómo se arregla el quilombo con el debugger, porque lo que dijiste hasta ahora no es diferente de lo que yo dije.
|
Cita:
Evidentemente, es cierto que el actual depurador no es ninguna maravilla funcionando con lazarus, pero en general va bien. No conozco los problemas que hayan tenido otras personas, pero yo siempre que he instalado cualquier versión de lazarus, que yo recuerde, el depurador ha funcionado siempre sin inconveniente alguno. Y lo que quiere decir Donald Shimoda es que delphi está más conseguido para trabajar "normalmente" desde un principio, pero técnicamente y en muchos aspectos, la combinación Linux + Free Pascal Compiler con Lazarus es muchísimo más potente, más versátil y es un proyecto más "vivo" que delphi. Pienso que no hay que molestarse unos con otros por sus opiniones, cada uno es libre de pensar. |
Cita:
Que sentido tiene explicarle a alguien que esta cerrado como vos? :) Si estas super convencido de seguir usando delphi y que lazarus no sirve por el debugger, que necesidad tengo de convencerte? No vale el esfuerzo, seguí tu camino. Solo intente darte una mano, pero tu ego no te deja ver que estas equivocado. No puedo pelear contra eso, no te parece? |
Cita:
Cita:
Cita:
Cita:
Donal: ¿Mi ego? ¿De qué estás hablando? El debugger no me anda, como a miles de personas, y pregunto si alguien sabe cómo solucionarlo. Después digo que ni los que hacen FPC saben como solucionar el problema. Y vos venís diciendo que yo tengo el ego inflado por cuestionar a los magistrales y maravillosos creadores de Lazarus... Disculpame, pero estás regando lejos de los malvones. |
Pues sí, evidentemente todavía faltan bastante cosas, ya lo hemos comentado otras veces por aquí, al proyecto lazarus le hace falta una ayuda como la que hizo google a wine, un buen montón de dinero, así podrían por fin sacar una versión 1.0 de lazarus con un depurador bien adaptado al mismo. A partir de ahí ya sería otra historia, empezaría a ser posible abandonar delphi en todos los aspectos.
|
es muy fácil criticar y no hacer nada, no por que a ti no te ande significa que es malo, si te encabrona tanto déjalo así y listo, usa delphi que para eso tiene el respaldo de una gran compañía, por otro lado deja de quejarte tanto y haz algo, para algo existe el bug tracker de lazarus, úsalo que con quejas con tanta subjetividad no sirven de nada, si reportas el problema le harán seguimiento y posteriormente solución, por otro lado a mi me anda de maravilla, en cuanto pc lo instalo me anda, solo tuve problemas cuando instalé una versión nueva sobre una anterior y pues la configuración fue todo un problema, aparte que obtuve el error mencionado en este hilo, la solución fue correr el CCleaner luego de eliminar por completo lazarus, al fina volví a instalar la nueva version en otro path y me quedó de maravilla.
PD. Si no sabes preguntar no esperes que sepan responder. |
Cita:
Cita:
Todo el día me cruzo con gente como vos, que no tiene tiempo de colaborar pero si de quejarse. Parece que delphi los acostumbro mal, y no pueden hacer el click en sus pequeños cerebritos y entender que lazarus/fpc no debe adaptarse a ellos: no tiene porque... Esta muy bien como esta, y a la gente que lo utiliza le sirve y mucho (me incluyo, obviamente). De modo que , a riesgo ya de repetirme, les pido disculpas, pero sino funciona para vos o te pones hombro a hombro con uno de los desarrolladores en el chat o sigues usando delphi. Que parte es tan difícil de comprender en esto? No tengo idea, pero por lo visto no lo comprendes. |
Cita:
Saludos |
Cita:
|
Cita:
Y es más fácil todavía, opinar sin haber leído lo que se escribió antes. Yo aplaudo y me saco el sombrero ante los creadores de FPC, Lazarus y los debuggers, pero no por eso voy a dejar de decir lo que opino sobre las cosas. Si el programa tiene problemas, pues, los tiene. Cita:
Cita:
Cita:
Cita:
Segundo, no tener la capacidad para ayudar no significa que uno no pueda notar cuando algo no anda bien. Eso para mí es un aspecto muy importante del Open Source, que la gente puede dar su opinión de forma abierta y sincera (o eso parece, porque este hilo dice otra cosa). ¿O acaso no lo criticaron a Linus Torvalds cuando se negó a usar OOP en el kernel de linux? Cita:
PD: ¿Pequeños cerebritos? ¿Quién tiene el ego inflado ahora? |
Cita:
2) Mostrame el link adonde uno de los desarrolladores dice que el problema existe y que no sabe como solucionarlo, y que no le interesa ningún dato que aporten dado que nunca tendrá solución, sino que es un milagro que para algunos funcione y para otros no. 3) Tu caso es un caso aislado (no lo tomes personal, no hablo de tu persona sino de lo que te sucede) ;) De modo que claro que sirve que expongas que sucede. Por otro lado, me dan mucho sueño participar en discusiones sin sentido (ni final) que no dejan nada en limpio, me voy a dormir. |
Cita:
|
Donald, cuando estuve buscándole una solución al problema, encontré una enorme cantidad de gente con el mismo problema. Ahora, es imposible que yo encuentre los hilos exactos de los foros exactos, así que cuánta gente es, pues ni idea, pero son muchos.
Nunca vi que uno de los desarrolladores, directamente, dijera "no tengo ni perra idea de qué pasa". Pero el simple hecho de que los foros oficiales y la wiki básicamente no digan nada al respecto o brinden soluciones (siendo que el foro está lleno de preguntas sobre el tema) nos dice que a) o los tipos no saben solucionarlo, b) saben pero no tienen tiempo, o c) saben pero no les importa. Seguramente es la b). Y no los culpo para nada, debe ser todo un problema tratar de solucionar algo que pasa algunas veces y otras no. Nadie parece saber las circunstancias bajo las que pasa, así que debe ser jodido arreglarlo. Recordemos también que los problemas con el debugger no son nuevos. Ya comentaba Ñuño Martínez, en el post #3, que el problemita viene desde hace rato. Es decir que es ya por todos conocido que el debugger tiene problemas múltiples. Yo no estoy diciendo que sea culpa de los tipos (quienes por cierto no escribieron ninguno de los debugger), simplemente digo que hay problemas con el debugger. Después, claro, todos se la cargan contra mí porque aparentemente "critico sin querer ayudar y me importa todo un pito". |
Bueno, no me leí todo pero quiero hacer una aclaración que quizá dé luz sobre por qué no funciona el depurador GDB con los programas FPC.
Como algunos ya sabéis, he estado los últimos años currándome la biblioteca Allegro.pas, la cual es una envolvente para poder utilizar Allegro (una biblioteca escrita en C) con Free Pascal (y en el futuro espero que también Delphi, pero no viene al caso). La cosa es que había cosas que no funcionaban a pesar de no existir una razón. Es decir, que coges un programa C que funciona perfectamente, haces una traducción literal a Pascal y falla: bien salta una excepción de sistema (no de Pascal), bien el resultado obtenido no es el esperado (por ejemplo, te cambia los colores). Pues bien: investigando, uno de los desarrolladores de Allegro descubrió por casualidad que una excepción era lanzada en cierta línea de la biblioteca escrita en C, al hacer un cálculo. Al cambiar el tipo de una de las variables implicadas de 32 bit a 64 bit resultó que el programa en Pascal funcionaba perfectamente. ¿Por qué? Pues simple: Free Pascal activa una serie de excepciones y límites del microprocesador Intel que GCC (el compilador C que uso yo y los desarrolladores de Allegro) no activa, por lo que el programa C ignora el error pero el Pascal no, ya que saltaba la excepción. Si ahora vamos al depurador vemos que está programado por los mismos que crearon los compiladores GCC. No sé cómo funciona algo a tan bajo nivel, pero es posible que alguna de las excepciones activadas por FPC entren en conflicto con los mecanismos que utiliza GCC para hacer el seguimiento, ya que supongo utilizará esas excepciones para monitorizar los eventos de depuración, puesto que GCC no las activa y están libres. Como digo, no sé cómo trabajan las cosas a tan bajo nivel, así que no tengo ni idea de si se puede comprobar y encontrar una solución, que seguramente pase por modificar FPC o GDB. No sé si habría que comentarlo con los desarrolladores de FPC, ya que se supone que deberían estar ya al tanto de esto, ¿no? En cualquier caso siempre puedo dejarlo caer en la lista de correos en la que estoy apuntado y donde muchas veces se discuten estos temas de diseño del compilador. |
Cita:
Creo que la diferencia es la actitud de quien les pregunta, o lo que preguntas. Si ingresas a la sala y dices: El debugger no funciona que puedo hacer? Pues, dudo que te respondan. Ahora si ingresas y cuentas que has probado, que las leído y no ha resultado, que entorno estas usando, etc, seguro que te responderán y ayudaran, y es muy probable que lleguen a una solución. El tema es que la gente que trabaja con lazarus no vive de eso, ni uno solo, todos están en sus tareas. Por eso NO VAN A PERDER SU TIEMPO si ven que no estas dispuesto a gastar tu tiempo también en encontrar la solución. Y no es lógico acaso? No tienen obligación de ayudar, lo hacen porque aman pascal, aman lazarus y aman los desafíos. Repito, todo lo que digo lo digo POR EXPERIENCIA PROPIA. Yo me he gastado mas de una tarde con Vincent por ejemplo, buscando porque el operador as no funcionaba, y como el ni siquiera tenia un delphi a mano yo probaba en delphi código y luego lo probabamos en 64 bits linux, y el en 32 bits. Para mi era vital para el funcionamiento de una librería de REMOBJECTS que este operador funcione como se esperaba, y me fume mas de una tarde completita de mis tareas con dos desarrolladores de lazarus y fpc , y se soluciono el tema. Esto es lo espectacular de OS, no sirve si solo dices no funciona, te das vuelta y te vas. Esto solo es lo que quiero que entienda Lord, que si se compromete con la solución lo mas probable es que se solucione, y sino pues habrás aprendido algo super valioso. Al fin y al cabo de que sirve si el fin es solo llegar y no aprendes en el camino, verdad? Creo que parte de que no progrese lazarus se debe justamente a este problema, la mayoría de los desarrolladores delphi están demasiado acostumbrados a pegar dos botones y que salga andando. De ese espíritu surge que al menor choque con alguna dificultad en lazarus se van a dormir. Una lástima porque el proyecto es único, y no exagero. Mencionen otro RAD que genere aplicaciones para WinCE, Windows, Mac OSX, Linux, etc etc? No lo hay. Lo mas parecido es QT Designer, es costosísimo y desagradable de usar (sin mencionar que hablamos de C!) En fin, solo mi pensamiento, perdón por el post kilométrico. Saludos. Saludos. |
Cita:
Sería bueno que consiguieran un apoyo como comenté antes, con wine, que recibieron ayuda de google. El caso es que así el futuro se ve un poco negro para lazarus, desgraciadamente. |
Cita:
El hecho de que haya empresas que lo estén utilizando para aplicaciones comerciales hace que el proyecto viva. La gente que no vive de eso, pertenece a empresas o a proyectos que pagan el tiempo que gasten en lazarus. El tema es que el desarrollo esta atado a lo que cada uno necesita, como di mi ejemplo, yo necesitaba que algo se solucione, fui a la fuente y se soluciono. El proyecto esta vivo y es sumamente útil. la base de usuario ha crecido y sigue creciendo, también la base de desarrolladores. Saludos. |
La franja horaria es GMT +2. Ahora son las 17:37:55. |
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