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 |
Supongo que nunca has utilizado GDB. Es bastante más flexible que usar Lazarus (aunque en teoría Lazarus usa GDB :rolleyes: ). 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 Ya, la pregunta es rara. Supongo que usaron Google translator o algo así. |
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. |
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.
|
La franja horaria es GMT +2. Ahora son las 08:42:26. |
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