Newsgroup: it.comp.lang.delphi
Titolo: Help: programma che si ferma in breakpoint che non trovo (D6)!

Dopo aver usato D3 per diverso tempo sono passato al D6 e per far
funzionare un mio programma (di quasi 10.000 linee) ho dovuto mettere le
mani su diversi elementi e componenti.
Ora funziona nuovamente ma ogni volta che lancio il programma con
l'opzione "Integrated Debugging", alla partenza mi devo "sorbire" 6
breakpoint (in formato di CPU/Assembler window e basta), poi mi appare
la form principale e poi altri 5 breakpoint (dello stesso tipo) e quindi
il programma parte regolarmente.
Il guaio è che non trovo questo benedetto breakpoint nella finestra
'Breakpoint list' e chiedre il punto di esecuzione mi riporta in primo
piano la finestra Assembler e basta.
In quella 'Status thread' appare nella colonna "State" = "Stopped" ed in
quella "Status" = "Breakpoint": chiedendo il "View source" mi appare la
solita finestra di CPU/Assembler in cui si vede poco prima l'etichetta 
 ntdll.DbgBreakpoint:  
 int 3
 ret
e se chiedo il "Caller" appare altro assembler (con anche una Call
ntdll.dbgPrint).
Come faccio a sapere dove si trova sto benedetto breakpoint ?
Dubbi: per caso avrò compilato qualche componente con dei breakpoint
dentro che mi "spuntano" fuori ora ? 
Ho provato a ricaricare i sorgenti ma non sembrano contenere breakpoint.
Ho provato a creare un altro programma che sulla form presenta tutte le
componenti modificate ma non ottengo "stoppate".
Ho provato anche ad eliminarele 1 form alla volta dal mio progetto ma
continuo a ricevere l'errore anche senza alcuna form!
Partendo direttamente con "Trace into" sembra dare il breakpoint già
alla prima riga del progetto (Application.initialize)
Ho provato a modificare le opzioni del progetto (uso di DCU di debug,
ottimizzazione, varie informazioni di debug,...) ma senza alcun
risultato.
L'Exe "isolato" funziona correttamente.
Spero sia solo ignoranza mia e non un bug...(sulle vecchie versioni
c'era la possibilità di breakpoint che sparivano dalla "vista"
dell'editor, ma in D6 non mi risulta; a proposito, ho installato
l'Update pack di D6).
Purtroppo, visto che il programma è ormai grandino, il debugger ogni mi
serve e dover passare prima 11 breakpoint è decisamente noioso!
Grazie per qualsiasi consiglio...sto finendo le idee :-(
Simone
_______________________________________________________
 All resistance is futile ! Prepare to be assimilated !

I breakpoint sono in qualche dll, evidentemente, usata dal tuo programma o
da qualche componente.
Ciao, Sandro

"Simone Murdock" ha scritto nel messaggio
| e se chiedo il "Caller" appare altro assembler (con anche una Call
| ntdll.dbgPrint).
|
| Come faccio a sapere dove si trova sto benedetto breakpoint ?
|
Probabilmente sono breakpoint nelle DLL di Windows.
Se usi Win2000 portalo almeno al Service Pack 2.
--
Ciao.
ACSH
[D4]
---------------------------
Chi fa da se'
fatica il doppio

Se usi Win2000 portalo almeno al Service Pack 2.
Eh, in realtà ho una beta (stabilissima, non ho mai capito perchè non
sia scaduta [giuro che non l'ho crackato!]...forse un bug :-)  ma temo
che il carattere di beta possa anche spiegare la presenza di breakpoint
nelle librerie :-(
Con D3 Pro il problema non c'era ma forse è cambiato qualcosa nel
debugger.
Grazie


Un piccolo dubbio mi aveva sfiorato, ma pensavo fosse fantascienza....
GRAZIE MILLE!!!
Mi hai indirizzato nella giusta direzione: è bastato cercare con Google
"Breakpoint" e "NTDll.dll" et voilà:
http://www.delphifaq.com/fq/q3052.shtml
"ntdll.DbgUserBreakPoint" during debug startup
Q:
Whenever I start a program from the IDE with debugging enabled, the CPU
window pops up and it reports something like  ntdll.DbgUserBreakPoint -
but I do not have any breakpoints set in my project.
A:
This is debug code in NTDLL.DLL itself. It gets executed if you have
more than 16 colors for the application icon. You can help yourself by
changing the number of colors for icons (Control Panel, Display
Properties).
Microsoft must have hard-coded a debug breakpoint (int 3) in ntdll.dll
to trace a bug and then they forgot to take it out for final build of
Windows
NT."
Nel porting da D3 a D6 avevo abbellito l'aspetto, usando tra l'altro una
nuova icona per l'applicazione stessa: mi è bastato rimettere quella che
usavo un tempo ed ora non ho più breakpoint inopportuni  :-))
Grazie mille ancora per il suggerimento (e alla mia proverbiale sfiga
degna di un beta-tester nell'incappare in bug assurdi!).
Simone
P.S. Altre descrizioni (pare che il bug possa presnetarsi anche in altri
casi) presso
http://www.elists.org/pipermail/delphi/2001-February/008376.html
http://www.neatech.ch/Power/PowerPP/1997.05/00000353.htm
Forse qui c'è anche una sorta di patch:  
 
http://www.geocities.com/wretch66/
 
