Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error debuguer con F8. (https://www.clubdelphi.com/foros/showthread.php?t=98012)

ingel 16-03-2026 15:28:39

Error debuguer con F8.
 
Buen dia a todos , gracias por su tiempo. Estoy teniendo problemas para debuguear un sistema (delphi 7 y Sql 2019). Por mas que ponga Break points (algunas lineas las acepta y marca en rojo para que el programa frene otras no las puedo marcar) . Cuando logro que frene en alguna y presiono F8 , el programa avanza y va pasando y frenando por lineas en blanco , donde no hay codigo , hasta que da error por lo tanto no puedo saber cual es la instruccion que da error. Ya limpie los DCU , borre todos , hice Rebuild , verifique los path de busquedas en el entorno y en el proyecto , modifique codigo agrupando diferente, pero sigue siempre igual , desconectado el F8 con las lineas de codigo. El PAS es el correcto porque si lo modifico y agrego un showmessage lo veo (para descartar que este ejecutando otro pas). Tambien probe crear un proyecto de cero , simple con 5 instrucciones y ahi si lo debuguea correctamente, asi que el problema es en este sistema en particular. Muchas gracias por su ayuda ! .. no queria molestar con esto pero la verdad hace rato estoy luchando y no logro resolverlo. saludos !

Casimiro Noteví 16-03-2026 17:14:17

También puedes editar el fichero de .dsk del proyecto y borrarlos manualmente, tienes una sección similar a esto:

Cita:

[Breakpoints]
Count=5
Breakpoint0='C:\proyecto1\UFmain.pas',4723,'',0,1,'',1,0,0,'',1,'','',''
Breakpoint1='C:\proyecto1\UFmain.pas',1777,'',0,1,'',1,0,0,'',1,'','',''
Breakpoint2='C:\proyecto1\UFmain.pas',1990,'',0,1,'',1,0,0,'',1,'','',''
Breakpoint3='C:\proyecto1\UFmain.pas',3492,'',0,1,'',1,0,0,'',1,'','',''
Breakpoint4='C:\proyecto1\UFmain.pas',736,'',0,1,'',1,0,0,'',1,'','',''

Neftali [Germán.Estévez] 16-03-2026 17:31:40

Algo similar me ha pasado a mi en 2 ocasiones.

1) La más habitual.
Se debe a que tienes en diferentes sitios DCUs correspondientes a los ficheros que has compilado. Estás viendo unos .PAS y los ficheros que el IDE encuentra (.DCU) no corresponden a esos ficheros.
Por eso "pinta" los puntos donde no toca y cuando "debuggas" avanza por líneas que no se corresponden con el .PAS que estás viendo en pantalla.

Lo más habitual es que por ejemplo, generas DCUs en un directorio, los hay en otro y el la configuración global tienes añadido el segundo.

2) El menos habitual.
Este nos ha pasado algunas vez con editores extraños (versionado de fuentes, herramientas de control de código y algún "Merge").
Nos ha pasado alguna vez (muy de vez en cuando) que dentro del fichero fuente .PAS no han entrado códigos (caracteres) no visibles que nos alteraban la visualización de los elementos de Debug (punto de debug). Nos dimos cuenta cuando los revisamos con algún editor que permite ver caracteres ocultos (como el Notepad++). Pero como digo esto nos ha pasado en muy raras veces.

duilioisola 17-03-2026 13:20:57

Esto también puede darse porque Delphi al compilar "optimice" el código. A mi me ha suceido en Delphi 6.

En Delphi 6, dentro de Project --> Options -> Compiler -> Code Generation puedes poner un check en code generation -> "Optimization" y otros checks en el apartado Debugging.

En modo Debug quito Optimization y marco los checks de Debugging.
En modo Release hago lo contrario.

Por ejemplo:

Código Delphi [-]
a := 1;                 
Entrar := True;         
if (Entrar = True) then 
begin                   
   a = 1; // <-- Esto lo quita el optimizador ya que está definido antes de entrar al IF
end
else
begin
   a := 2;
end;

ingel 17-03-2026 17:42:36

Gracias por su ayuda , sigo intentando
 
Lo de los DCU , esta creo yo , descartado , el unico DCU que tengo en el disco con el nombre del PAS , lo genera con fecha actual. (ya lo he borrado varias veces)
Borre los .dsk y .cfg ( hice rebuild y siguio igual)
Revise los path , probe activando y desactivando las opciones de Debuger en opciones - Compilacion.
y ChatGpt tambien esta en crisis , ya no sabe que sugerirme :-)

pero bueno... seguire luchando ,,, gracias a todos nuevamente !!

pd. ahora estoy analizando porque me marca las lineas como Break validos (rojas) y al darle F9 me las pasa a verde como invalidas.

Casimiro Noteví 17-03-2026 18:27:59

Pásanos capturas de pantalla, o si es posible una copia del proyecto como ejemplo para que podamos probar.

ingel 18-03-2026 16:51:18

diagnostico del que lo programo
 
Buenos dias , les comento algo por si les sirve de ayuda para deducir que podria ser la causa del problema...
Pude hablar con el programador original del sistema, me comento que eso le empezo a pasar EN ALGUN MOMENTO , no sabe si luego de instalar algun componente o que y como que habia x numero de lineas FIJAS que estaba desfazado el debuguer con el codigo (evidentemente nunca logro corregirlo)..
El sabia que eran 7 lineas mas abajo por ejemplo entonces cuando debugueaba , miraba al momento del error 7 lineas abajo para encontrar la linea exacta de copdigo.
En el primer mensaje adjunte un PDF de como se ve lo que pasa. Respecto a enviar el codigo no tengo problema si les parece.. ( para compilar los hará renegar un poco creo y no quisiera abusar de su amabilidad y tiempo , pero está a disposicion )

Neftali [Germán.Estévez] 18-03-2026 17:21:01

Probar lo de los caracteres "raros" que te he comentado es fácil.
Simplemente debes abrir el fichero .PAS con Notepad++ (por ejemplo) y visualizar todos los caracteres. Ahí deberías ver si hay alguno extraño.

Te puede ayudar lo siguiente. Busca en el código desde el inicio de la unit, cual es el punto en que los puntos empiezan a "desfasar". Ese es el punto donde debes buscar esos caracteres en el Notepad++.

ingel 20-03-2026 15:47:19

lo tengo mas cerca al error , pero no se porque se produce
 
Hola A todos. les cuento , inicie a Debuguear desde la primera instruccion del sistema en el archivo .dpk
llego al pas principal y hasta una funcion que tiene algunas llamadas de un componente FTP , ahi se descontrola. Adjunto imagen en pdf llamado 'clubdelphi.pdf' .
Puse el Break que se ve en rojo , con F8 pasa a la instruccion de debajo , pero con el tercer F8 pasa a una linea sin codigo.
MUCHAS GRACIAS a todos ,que tengan un buen dia.
sds

Casimiro Noteví 20-03-2026 16:27:48

Poco podemos decir/hacer ya, si no pasas el código.

duilioisola 21-03-2026 09:13:38

Yo haría una prueba comentando el componente.


Algo así:
Código Delphi [-]
losFilesEnFTP := TStringList.Create; 
try 
  // Comentado función de FTP1 y creado mockup con lista de ficheros de prueba
  // FTP1.List(...); 
  losFilesEnFTP.Add('test1.txt'); 
  losFilesEnFTP.Add('test2.txt'); 
  losFilesEnFTP.Add('test3.txt');   
  while ...   
finally 
  losFilesEnFTP.Free; 
end;

Además mira si estos son funciones que devuelve algo o son procedimientos.
  • FTP1.Conectar() Quizás devuelva true/false
  • FTP1.ChangeDir() Quizás devuelva true/false

Mete cada uno de estos dentro de un try..except.
Podrían estar devolviendo una excepción ABORT que creo que es "silenciosa" y Delphi no la muestra.
Código Delphi [-]
try
  FTP1.Conectar() 
except
  on E:Exception do
    ShowMessage(E.Message);
end;

ingel 22-03-2026 20:28:22

Gracias a todos.. les adjunto el codigo del pas principal
 
sds
PD recien el miercoles podre probar lo sugerido por duilioisola. gracias


La franja horaria es GMT +2. Ahora son las 03:05:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi