![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
No hace caso a los puntos de interrupción en Delphi Berlin
Hola a tod@s.
Estoy intentando pasar un pequeño proyecto desde delphi 2007 a Delphi Berlin y, aparte de otros problemas que tengo que resolver, estoy viendo un comportamiento extraño relacionado con los "breakpoints" y es que, cuando quiere, no les hace caso. Hay veces que pongo alguno en alguna parte del código y se lo salta a la torera, o sea, que no se para. Sin embargo, si antes pongo un showmessage para probar si pasa por ahí, hace el showmessage y luego se para en el breakpoint. ¿Alguien me da algo de luz sobre este asunto? Saludos
__________________
Be water my friend. |
#2
|
|||
|
|||
Hola...
Podría ser que el compilador al optimizar el código elimina la línea de código donde tienes el break point y es por eso que al hacer el debug ya no se detiene ahí. Me llegó a pasar. Saludos... |
#3
|
||||
|
||||
Cita:
Saludos
__________________
Be water my friend. |
#4
|
||||
|
||||
Ese comportamiento es así, de siempre, en todas las versiones de delphi.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
cuando pones el showmessage si se detiene la ejecucion o solo el programa se queda en espera?
Y por pura casualidad, se tienen dos modos de ejecucion (hay dos botones de play), a cual le estas dando? Saludos. |
#6
|
||||
|
||||
1. Abri el archivo de codigo fuente (.pas) en algun editor de texto (ej Notepad++)
2. Converti los "fin de linea" (si, asi les digo yo) a formato UNIX (CR) 3. Converti los "fin de linea" a formato Windows/MS-DOS (CRLF) 4. Elimina los dcu de tu proyecto 5. Build all (Shift+F9) 6. Intenta depurar Los pasos 2 y 3 hacelos aunque el Notepadd++ te marque que el fin de linea este en formato Windows. Tambien es sano revisar que el encoding del archivo (no recuerdo cual era el bueno para el editor de Delphi, mis archivos .pas estan en ANSI) Testimonios ![]() https://plus.google.com/+MarcoCirinei/posts/HYkiV1dgyvE https://plus.google.com/+MarcoCirinei/posts/5Jg7i2Ksiay |
#7
|
|||
|
|||
Para debuguear yo uso CodeSite, me resulta mucho mas practico que estar usando breakpoints...
|
#8
|
||||
|
||||
A veces ayuda utilizar la opción "Clean" antes del "Build" del proyecto.
Otra recomendación (al menos yo lo uso) es utilizar OutputDebugString en lugar de los ShowMessage ayudándonos luego de una herramienta como DebugView de SysInternals. Hay otras similares.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
||||
|
||||
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
||||
|
||||
Gracias a todos por vuestros comentarios.
He editado con notepad y guardado (por si acaso) el .pas, he borrado el .dcu, le he dado a Build y nada. Pero no sé si me he explicado correctamente, lo único que quiero es que si pongo un punto de interrupción (de los de toda la vida) se pare y no lo hace. Sólo lo hace si antes pongo un showmessage o un application.processmessage y eso no lo veo normal. No sé, igual es algo de configuración y por eso preguntaba pero no me gustaría en principio tener que echar mano de otras herramientas porque no las echo en falta ahora mismo. Saludos
__________________
Be water my friend. |
#11
|
||||
|
||||
Cita:
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
||||
|
||||
No lo creo, ¿es correcto que si pones un punto de interrupción no se pare?
__________________
Be water my friend. |
#13
|
||||
|
||||
Cita:
Si pones un showmessage después entonces él piensa "pues sí sirve", así que se detiene en el breakpoint.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
||||
|
||||
Hasta ahí estamos de acuerdo pero son líneas que si que sirven.
__________________
Be water my friend. |
#15
|
||||
|
||||
Mí comentario anterior es por un problema que me jodió un tiempo, que provocaba un desfase entre el número de línea de código "a la vista" y el número que ve el compilador y el depurador. Entonces al marcar una línea con un breakpoint en realidad marcas otra o incluso a veces nada
Por casualidad es código compilado en línea? (Es decir, con la directiva "inline"). El código en línea puede ser muy difícil de depurar Quizá haya un problema en las opciones del proyecto (estas compilando bajo la configuración Debug?) Cuando pones el breakpoint, resalta en verde la línea de código? Si es el caso tiene razón Casimiro, tú código fue eliminado del ejecutable |
#16
|
||||
|
||||
Cita:
__________________
Be water my friend. |
#17
|
||||
|
||||
#18
|
||||
|
||||
Hola de nuevo.
He modificado el parámetro Project-Options-Delphi Compiler-Compiling-Optimization a "false", estaba a "true" y ahora si que se para donde le marco. Gracias a todos.
__________________
Be water my friend. |
#19
|
||||
|
||||
Eso es lo que indicaba antes, la optimización que hace el compilador.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#20
|
||||
|
||||
Cita:
![]()
__________________
Be water my friend. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Excepcion en Ejecutable Delphi 10.1 berlin | victor Julio | MySQL | 12 | 16-11-2016 05:52:41 |
Fichas en Delphi Starter Berlin | brakaman | Varios | 1 | 05-09-2016 12:32:49 |
Tamaño fuente en el IDE Delphi Berlin | keys | Varios | 2 | 22-07-2016 08:08:48 |
Método Add(s) de TStringList no me hace caso | david.rguez | Varios | 14 | 25-01-2008 16:10:09 |
![]() |
|