Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
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.
Responder Con Cita
  #2  
Antiguo 20-02-2017
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
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...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #3  
Antiguo 20-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por maeyanes Ver Mensaje
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.
Cierto, eso pasa, pero cuando es código que no se llega a ejecutar. En este caso que planteo si exactamente antes de la línea del breakpoint pongo un showmessage para parar el programa si que se para.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 20-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ese comportamiento es así, de siempre, en todas las versiones de delphi.
Responder Con Cita
  #5  
Antiguo 20-02-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
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.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #6  
Antiguo 20-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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
Responder Con Cita
  #7  
Antiguo 21-02-2017
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Para debuguear yo uso CodeSite, me resulta mucho mas practico que estar usando breakpoints...
Responder Con Cita
  #8  
Antiguo 21-02-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #9  
Antiguo 21-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Ese comportamiento es así, de siempre, en todas las versiones de delphi.
¿Pero has leido bien la pregunta? en qué estarías pensando
Responder Con Cita
  #10  
Antiguo 21-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
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.
Responder Con Cita
  #11  
Antiguo 21-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Pero has leido bien la pregunta? en qué estarías pensando
Cita:
Empezado por newtron Ver Mensaje
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
Entonces va a ser que mi comentario es correcto.
Cita:
Ese comportamiento es así, de siempre, en todas las versiones de delphi.
Responder Con Cita
  #12  
Antiguo 21-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Entonces va a ser que mi comentario es correcto.
No lo creo, ¿es correcto que si pones un punto de interrupción no se pare?
__________________
Be water my friend.
Responder Con Cita
  #13  
Antiguo 21-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
No lo creo, ¿es correcto que si pones un punto de interrupción no se pare?
Sí, así es, si el compilador ha decidido que esa línea de código no sirve para nada, por lo que pasa de ella.
Si pones un showmessage después entonces él piensa "pues sí sirve", así que se detiene en el breakpoint.
Responder Con Cita
  #14  
Antiguo 21-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sí, así es, si el compilador ha decidido que esa línea de código no sirve para nada, por lo que pasa de ella.
Si pones un showmessage después entonces él piensa "pues sí sirve", así que se detiene en el breakpoint.
Hasta ahí estamos de acuerdo pero son líneas que si que sirven.
__________________
Be water my friend.
Responder Con Cita
  #15  
Antiguo 21-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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
Responder Con Cita
  #16  
Antiguo 21-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por AgustinOrtu Ver Mensaje
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
Cuando pongo el breakpoint se pone en rojo, es decir, que debe de parar. En el mismo proyecto en Delphi 2007 no tengo ese problema, pongo un breakpoint en la misma linea de la misma unidad y se para. ¿Eso de la configuración debug a qué te refieres?
__________________
Be water my friend.
Responder Con Cita
  #17  
Antiguo 21-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Esto

http://docwiki.embarcadero.com/RADSt...tions_Overview
Responder Con Cita
  #18  
Antiguo 21-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
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.
Responder Con Cita
  #19  
Antiguo 21-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
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.
Eso es lo que indicaba antes, la optimización que hace el compilador.
Responder Con Cita
  #20  
Antiguo 21-02-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Eso es lo que indicaba antes, la optimización que hace el compilador.
Negativo, tú has comentado antes sobre lineas de código que el compilador decide que no sirven para nada. Esto es otra cosa.
__________________
Be water my friend.
Responder Con Cita
Respuesta



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
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


La franja horaria es GMT +2. Ahora son las 11:37:38.


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