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 04-09-2007
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Poder: 0
against Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 04-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 04-09-2007
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Poder: 0
against Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 05-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Prueba a reconstruir (build) todo el proyecto. (Menu Project->Build)
Responder Con Cita
  #5  
Antiguo 05-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡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.
Responder Con Cita
  #6  
Antiguo 05-09-2007
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Poder: 0
against Va por buen camino
Cita:
Prueba a reconstruir (build) todo el proyecto. (Menu Project->Build)
Nada con esto me sigue pasando lo mismo, es más en la parte de código en el que me permite poner los breakpoints no se para, simplemente me los ignora.

Cita:
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.
Bueno sobre lo de $D/$DEBUGINFO sino me equivoco es cuando esta puesto en el pas {$DEBUGINFO ON},no? si es así no esta puesto por ningún lado en el archivo, la pestaña de "Debug Information" también la tenia marcada.

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!
Responder Con Cita
  #7  
Antiguo 05-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
¿Podrías poner algunas de las líneas que te ignora, para ver si el error está en el código?
Responder Con Cita
  #8  
Antiguo 05-09-2007
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Poder: 0
against Va por buen camino
Código Delphi [-]
procedure TTpvModulo.TCabTicketNewRecord(DataSet: TDataSet);
begin TcabTicket.fieldbyname('total').Asfloat := 0;
TcabTicket.fieldbyname('codterminal').AsInteger := CodTerminalGlobal;
//TcabTicket.fieldbyname('codcomercial').AsInteger := usuarioactivo;
tcabTicket.FieldByName('Dto').asfloat:=0;
tcabTicket.FieldByName('Dto2').asfloat:=0;
TcabTicket.fieldbyname('fecha').asstring:=datetostr(date());
//TcabTicket.fieldbyname('CodUsuario').AsInteger := usuarioactivo;
TcabTicket.fieldbyname('bruto').Asfloat := 0;
TcabTicket.fieldbyname('totalticket').Asfloat := 0;
TcabTicket.fieldbyname('pagadoeuros').Asfloat := 0;
TcabTicket.fieldbyname('devolver').Asfloat := 0;
TcabTicket.fieldbyname('stock').Asfloat := 0;
TcabTicket.fieldbyname('total').Asfloat := 0;
TcabTicket.fieldbyname('baseimponible').Asfloat := 0;
TcabTicket.fieldbyname('contado').Asfloat := 0;
TcabTicket.fieldbyname('tarjeta').Asfloat := 0;
TcabTicket.fieldbyname('cheque').Asfloat := 0;
TcabTicket.fieldbyname('transferencia').Asfloat := 0;
TcabTicket.fieldbyname('abono').Asfloat := 0;
Tcabticket.fieldbyname('pabonoeuros').Asfloat := 0;
Tcabticket.fieldbyname('entregado').Asfloat := 0;
Tcabticket.fieldbyname('iva').Asfloat := modulo.tconfig2iva.asfloat;
Tcabticket.fieldbyname('manual').Asstring := 'No';
Tcabticket.fieldbyname('pagado').Asstring := 'No';
Tcabticket.fieldbyname('impreso').Asstring := 'No';
end;

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.

Código Delphi [-]
procedure TTpvModulo.DataModuleCreate(Sender: TObject);
var   Ini: TIniFile;   host,bd:string;
begin   validarpalets:=true;   //hola1
  val1:='';
  val2:='';
  val3:='';
  entrarenref := False;
  actualizamospedido:=true;  
  NoBeforeEdit := 0;
  RefInvalida := False;

  Ini := TIniFile.Create (ExtractFilePath(Application.ExeName) + 'config.ini');
  host:=Ini.ReadString('Servidor','Host',' ');
  bd:=Ini.ReadString('Servidor','BBDD',' ');
  Ini.Free;
  fmmain.borrartemp;
  try     
    conexion.Connected:=false;     
    conexion.hostname:=host;    
    conexion.Database:=bd;     
    conexion.Connected:=true;   
  except     
    showmessage('Atención, Host Incorrecto.');
    Application.Terminate;
  end;
  Abrir;
   
End;


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.
Responder Con Cita
  #9  
Antiguo 05-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¿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.
Responder Con Cita
  #10  
Antiguo 06-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
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:
Código Delphi [-]
begin
  b := 15;
  for f := 1 to 5 do
    beep
end;
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.
Responder Con Cita
  #11  
Antiguo 06-09-2007
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Poder: 0
against Va por buen camino
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
Responder Con Cita
  #12  
Antiguo 06-09-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
Responder Con Cita
  #13  
Antiguo 06-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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]
Responder Con Cita
  #14  
Antiguo 06-09-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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:
[Breakpoints]
Count=3
Breakpoint0='C:\Archivos de programa\Borland\Delphi7\Projects\Unit4.pas',28,'',0,1,'',1,0,0,'',1,'','',''
Breakpoint1='C:\Archivos de programa\Borland\Delphi7\Projects\Unit4.pas',29,'',0,1,'',1,0,0,'',1,'','',''
Breakpoint2='C:\Archivos de programa\Borland\Delphi7\Projects\Unit4.pas',31,'',0,1,'',1,0,0,'',1,'','',''
Responder Con Cita
  #15  
Antiguo 06-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

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..."?
Responder Con Cita
  #16  
Antiguo 07-09-2007
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
¿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 , por eso, cuando tengo que depurar algo de esas 600 o 700 lineas primeras despues de la implementation section, tengo que cortar ese codigo y pegarlo al final del DataModule...
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.
Responder Con Cita
  #17  
Antiguo 07-09-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
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:
Código Delphi [-]
asm int 3 end;

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.
Responder Con Cita
  #18  
Antiguo 07-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

No sé si tenga algo que ver esto o con esto.

Última edición por Al González fecha: 07-09-2007 a las 20:50:04.
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
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


La franja horaria es GMT +2. Ahora son las 19:14:31.


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