![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Delphi deshabilita los breakpoints de mi módulo
Buenos tardes a todos, estado buscando información sobre este problema que tengo aquí, en otras páginas y no conseguido dar con la solución y la única manera que encuentro de poder resolverlo es planteándolo aquí y a ver si alguien pudiera ayudarme:
Bueno como bien lo titulado el problema se origina en uno de los módulos de mi proyecto, y no en todo el código, sino desde el principio hasta más o menos la lineas 3000 o así, la cuestión es que en esa parte de código ponga donde ponga el breakpoint delphi me lo deshabilita dejándolo en un verde oliva con el aspa, a partir de esas otras no me los quita. He probado borrando los dcus del proyecto, de solo ese modulo, de la carpeta ${DELPHI}\lib\debug, he movido de sitio el proyecto, he quitado el modulo del proyecto y lo vuelvo añadir (sin borrar el fichero .pas), pasarlo al bloc de notas y volver a guardarlo, renombrando el fichero,quitando la opción de optimize, poniendo la opción de usar los dcus en el modo debug. Bueno no se si me dejo algo máss o no, tampoco tenia muy claro donde colocar el Post, creo que este serie el sitio más adecuado. Un Saludo. |
#2
|
||||
|
||||
Eso a mi me sucede cuando el compilador no ejecuta esas lineas
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
|||
|
|||
En este caso si que las ejecuta, por ejemplo en el oncreate del modulo no me entra, tiene lineas (no son comentarios las lineas) y esta en el auto-create form, es más hace un tiempo si me funcionaba bien pero ahora ya no, es más en el resto del proyecto me funciona perfectamente el debug.
Última edición por against fecha: 04-09-2007 a las 19:40:12. |
#4
|
||||
|
||||
Prueba a reconstruir (build) todo el proyecto. (Menu Project->Build)
|
#5
|
||||
|
||||
![]() ¡Hola a todos!
Probablemente tu unidad contiene la directiva de compilación $D/$DEBUGINFO a partir de cierta línea, pero no fue marcada la opción "Debug information" en la pestaña Compiler de las opciones del proyecto. No dejes de contarnos. Al. |
#6
|
|||
|
|||
Cita:
Cita:
Bueno de mientras me tocara ir trabajando con showmessage si necesito debugear. También hacer un inciso en que en otros proyectos no tengo ningún problema a la hora de hacer debug. Un saludo! |
#7
|
||||
|
||||
¿Podrías poner algunas de las líneas que te ignora, para ver si el error está en el código?
|
#8
|
|||
|
|||
Por ejemplo, pero si fuera ese el error no me dejara compilar, y tampoco es lo de que nunca se vaya a ejecutar ese trozo de código como muchos más, he llegado a pensar porque es demasiado grande el modulo.
Otro ejemplo por si pensaras que en el otro nunca entrara, es más delphi me los pone como no breakpoints o algo asi se llaman a esos breakpoints con el aspa y color verde oliva, no? Gracias por el interés por lo menos que estáis prestando aunque no tengo esperanzas de arreglarlo :P. PD: El modulo entero no puedo ponerlo porque es demasiado largo. Última edición por against fecha: 05-09-2007 a las 18:32:14. |
#9
|
||||
|
||||
![]() ¿Dices que en la misma unidad .pas te permite poner puntos de ruptura en algunas sentencias y en otras no?
¿Podrías mostrarlos una imagen .jpg que compruebe que estamos hablando del mismo .pas? Un abrazo sospechoso. Al González. ![]() |
#10
|
||||
|
||||
Bueno, pensando y pensando he llegado a una conclusión: Delphi te deshabilita los breakpoints solo si esa parte del código no se ejecuta, no hay otra posibilidad.
Fíjate (y ponlo acá para que lo veamos) en que parte de tu proyecto se llama a la función TCabTicketNewRecord, o lo que es lo mismo, si se agrega un nuevo registro en el dataset. Si no se llama desde ningún lado el debuger ignorará esos breakpoints. A veces el debuger también ignora los trozos de código inútil. Ejemplo: si quieres poner un breakpoint en la línea b := 15 no podrás hacerlo, porque como esa variable no se utiliza más adelante tanto el compilador como el debuger la ignoran. Coméntanos si solucionas el problema. Última edición por paldave fecha: 06-09-2007 a las 00:17:48. |
#11
|
|||
|
|||
Bueno la imagen del delito:
http://img165.imageshack.us/my.php?i...sdelphiyz4.jpg Sobre lo de si se llama al procedure por ejemplo en la imagen, con hacer TpvModulo.Tlinpagospedido.Append; ya entrara (los procedure son de los ZEOS para MySQL) Aquí tienes un ejemplo de que se llama de muchos sitios: http://img171.imageshack.us/my.php?i...elineasbc5.jpg Y si que se ejecutaran las lineas :P. Por ahora no podido arreglar el problema, la únicas opciones sin solucionar el tema son hacer breakpoints por código, que parecía un poco coñazo y los showmessage PD: Es más cuando pongo un breakpoint en el tpvmodulo (el pas que estamos hablando) me da un access violation. Última edición por against fecha: 06-09-2007 a las 10:10:37. Razón: añadida más explicación |
#12
|
||||
|
||||
Creo recordar que los breakpoints se guardan en un ficherito en el directorio de delphi, si lo borras se volverá a crear automáticamente de nuevo.
El nombre... ahora mismo estoy instalando delphi, en cuanto termine lo miro ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
||||
|
||||
Prueba a eliminar todos los breakpoints y volverlos a crear.
A mi me ha sucedido que al insertar líneas (creo que mientras ejecutaba la aplicación) los breakpoint no se movían. Prueba lo siguiente: - View --> Debug Windows --> Breakpoints - Botón derecho sobre el primero - Breakpoints --> Delete All --> [YES] |
#14
|
||||
|
||||
En el fichero del proyecto .dsk (ejemplo: miproyecto.dsk) se guardan una serie de datos y entre ellas están los breakpoints, bórralos para que se autoconstruyan.
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#15
|
||||
|
||||
![]() Gracias por las imágenes. Ahora ¿podrías mostrarnos la declaración de la clase TTpvModulo, desde "TTpvModulo = Class..." hasta donde aparece la declaración del método "Procedure TlinpagospedidoBeforeInsert..."?
|
#16
|
||||
|
||||
¿Cuantas lineas de codigo tiene esa unidad?
Hola, a mi me pasa lo mismo al intentar poner breakpoints en un DataModule que contiene 6730 lineas,
y en otro que contiene 4620 lineas. En el primer DataModule, la implementation section empieza en la linea 2000, más o menos. Si pongo un breakpoint en cualquier otra unit, si se para, pero si lo pongo en las primeras 2600 lineas de cualquiera de esos DataModules, no se para. En las demás si se para ![]() Sin embargo si ejecuta esas instrucciones, basta con poner un simple ShowMessage('Aviso'); para comprobarlo. ¿Puede ser un fallo del depurador de Delphi 6?
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... Última edición por defcon1_es fecha: 07-09-2007 a las 18:38:40. |
#17
|
||||
|
||||
Cuando desarrollo aplicaciónes con N líneas (miles) lo modularizo lo más posíble, eso me da control y previene tal eventualidad. (Lo paso a unidades o módulos más específicos)
Al parecer si es un BUG de Delphi ![]() Edito: No se me ocurrió con anterioridad... en realidad se me acaba de ocurrir!, intenten poner ésta línea y me comentan si funciona:
Edito de nuevo: deben ponerla en ves del punto de quiebra. Última edición por cHackAll fecha: 07-09-2007 a las 18:46:17. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta Delphi 6, Delphi 2005 y Delphi 2006 | Leviatan | Varios | 6 | 18-08-2007 16:02:08 |
Tipos de Breakpoints | senda | Varios | 2 | 18-06-2007 18:41:34 |
![]() |
|