Abbiamo creato un'applicazione che utilizza pacchetti e componenti. Quando eseguiamo il debug dell'applicazione, il "Registro eventi" nell'IDE mostra spesso che i nostri BPL vengono caricati senza informazioni di debug ("Nessuna informazione di debug"). Questo non ha senso perché tutti i nostri pacchetti ed EXE sono costruiti con il debug.L'app Delphi ha "Nessuna informazione di debug" durante il debug
_(each project) | Options | Compiling_
[ x ] Assertions
[ x ] Debug information
[ x ] Local symbols
Symbol reference info = "Reference info"
[ ] Use debug .dcus
[ x ] Use imported data references
_(each project) | Options | Linking_
[ x ] Debug information
Map file = Detailed
abbiamo 4 progetti, tutti costruiti con pacakges runtime:
- Core.bpl
- Components.bpl
- Plugin.bpl (utilizza sia # 1 & # 2)
- MainApp.exe (utilizza # 1)
problemi osservati
1) Molte volte quando si esegue il debug, la Components.bpl è caricato con informazioni di debug, ma tutti i valori nella finestra "Variabili locali" sono vuoti. Se si posiziona il puntatore del mouse su una variabile nel codice, non vi è alcun popup e la finestra di valutazione mostra anche nulla (il riquadro "Risultato" è sempre vuoto).
2) A volte il registro eventi mostra "Nessuna informazione di debug" per vari BPL. Ad esempio, se attiviamo il progetto Plugin.bpl e impostiamo su Esegui | L'applicazione host del parametro deve essere MainApp.exe, quindi premere F9, tutti i moduli sembrano caricarsi con "Has Debug Info" ad eccezione del modulo Plugin.bpl. Quando viene caricato, il registro eventi mostra "Nessuna informazione di debug". Tuttavia, se chiudiamo l'app e preme immediatamente F9, verrà eseguito di nuovo senza ricompilare nulla e questa volta Plugin.bpl è caricato con debug ("Has Debug Info").
Domande
1) Che cosa potrebbe causare la finestra "variabili locali" per non visualizzare i valori?
2) Perché a volte i BPL vengono caricati senza informazioni di debug quando la BPL è stata rispettata con il debug e tutti i file di debug (dcu, map, ecc.) Sono disponibili?
Combinare i BPL per sbarazzarsi del problema non è una buona soluzione. Immagina di avere centinaia di pacchetti dinamici, impossibile combinarli in un'unica BPL. –
@ChauCheeYang - Abbiamo dozzine di altri BPL. Era solo la separazione di questi due a causare il problema. Nel nostro caso, la combinazione di questi due è stata accettabile - lasciando le altre dozzine separate ... Potrebbe aver avuto qualcosa a che fare con Components.bpl dipendeva molto da Core.bpl. –
Hai usato il riferimento optset per entrambe le configurazioni 'debug' e' release'? –