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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2016
aggg63 aggg63 is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
aggg63 Va por buen camino
Depurar DLL con Lazarus

Hola.

Hace tiempo creé una DLL para jugar a las damas españolas con la interfície CheckerBoard. La desarrollé en D2005 y funciona perfectamente hasta ahora. Ha pasado el tiempo y ahora me gustaría hacerla con Lazarus. El problema que encuentro es que no puedo depurarla con Lazarus. He probado varias opciones: mode delphi/objfpc, usar sharemem y algún cambio en los parámetros de compilación. Los resultados son siempre iguales, salta una excepción: ,msg="Cannot find bounds of current function" en la función GenerarJugadaCB. He probado alguna sugerencia que he encontrado (http://bugs.freepascal.org/view.php?id=24208), pero sin resultados positivos. He probado stdcall y cdecl, pero esta ultima no esta soportada por CheckerBoard. Estoy probando con Lazarus de 32 bits para CheckerBoard de 32 bits en Windows 7 de 64 bits. También he probado con las versiones de 64 bits y no funciona la depuración.

Aquí tenéis enlaces para descargar CheckerBoard y un proyecto mínimo de la DLL que hace una única jugada. Ademas he puesto el motor de damas españolas. Agradecería cualquier ayuda para resolver el problema depurando la DLL. Gracias.

https://dl.dropboxusercontent.com/u/...73a-x32-EG.exe
https://dl.dropboxusercontent.com/u/...-1.18b-x32.exe
https://dl.dropboxusercontent.com/u/...7/CB/damas.zip
Responder Con Cita
  #2  
Antiguo 28-09-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Supongo que nunca has utilizado GDB. Es bastante más flexible que usar Lazarus (aunque en teoría Lazarus usa GDB ). Con GDB puedes poner un punto de ruptura dentro de la DLL aunque no la haya cargado todavía. Por ejemplo:
Código:
(gdb) break ejemplo.pas:245
No hay un archivo fuente con el nombre ejemplo.pas.
¿Compilación de breakpoint pendiente hasta futura cargada de biblioteca
compartida? (y or [n]) ?
Ahí pulsas "y" y cuando cargue la DLL ya hará la parada correspondiente.

Ya, la pregunta es rara. Supongo que usaron Google translator o algo así.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 06-10-2016
aggg63 aggg63 is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
aggg63 Va por buen camino
Gracias Ñuño.

Efectivamente, no he utlizado GDB. Haré un esfuerzo y miraré cómo depurar la libreria con GDB, pero mi nivel de programación es bastante mediocre. Con Delphi me defendía, después de varios años sin programar me costará un poco.
Responder Con Cita
  #4  
Antiguo 08-10-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Te recomiendo que tengas paciencia. GDB tiene muchas opciones y puede costar aprenderlas. Pero con unos pocos tutoriales (creo que la wiki de Lazarus tiene alguno de esos) te manejarás bien.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Depurar DB MS SQL Jose Carlos Rey MS SQL Server 4 13-10-2014 23:27:12
Depurar una CGI en Delphi 5 bitbow Internet 0 10-03-2011 17:55:42
Depurar una dll en TurboDelphi yarones Varios 3 18-01-2008 13:22:29
Depurar Clases jplj Varios 2 13-11-2007 18:39:59
depurar libreria agonzalez Varios 6 16-03-2004 20:03:08


La franja horaria es GMT +2. Ahora son las 22:17: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
Copyright 1996-2007 Club Delphi