Ho scritto una semplice applicazione win32 VCL che ha il seguente codice:Come eseguire il debug remoto un'applicazione Win32 VCL costruita con il pacchetto runtime
procedure TForm5.Button1Click(Sender: TObject);
begin
ShowMessage('bingo');
end;
ho compilato la domanda con i pacchetti runtime e si è attivare le seguenti opzioni:
- informazioni di debug -> vero
- comprende i simboli di debug remoto -> vero
- Asserzione, le informazioni di debug, smbols locali, Deus uso di debug -> true
L'uscita ha i seguenti file:
- project1.exe
- project1.rsm
I due pacchetti di runtime sono:
- vcl160.bpl
- rtl160.b pl
Ho impostato un punto di interruzione nel gestore Button1Click, il debugger IDE locale si fermerà lì se corro il applicazione in modalità debugger.
Successivamente, voglio provare a eseguire il debug remoto dell'applicazione con i pacchetti di runtime.
Assegna il profilo remoto alla piattaforma Windows a 32 bit. La connessione di prova funziona con il profilo remoto. Anche PAServer è stato avviato nella macchina remota. Posso notare 4 file sono stati copiati macchina remota quando si tenta di eseguire l'applicazione con Delphi XE2 IDE debugger:
- progetto1.exe
- project1.rsm
- vcl160.bpl
- rtl160.bpl
Tuttavia, il registro eventi mostra:
Module Load: Project1.exe. No Debug Info. Base Address: $00400000. Process Project1.exe (1676)
Poiché il modulo non dispone di informazioni di debug, non verrà attivato alcun punto di interruzione.
Ho provato a creare un'applicazione di file singolo .exe senza pacchetti di runtime. Le stesse fasi del debugger remoto funzionano e posso eseguire il debug dell'applicazione in remoto.
Cosa ha fatto fallire il debug remoto con l'applicazione creata con pacchetti di runtime?
una buona pratica di debug è anche l'uso di OutputDebugString, che può essere gestito da te, o da un software 3d party – RBA
perché non hai specificato la versione Delphi, forse questo può aiutare http://stackoverflow.com/questions/ 5018147/delphi-2010-remote-debugging-incapace-per-get-breakpoints-working – RBA
RBA: Sto usando Delphi XE2 update 4. Il post che hai suggerito è l'applicazione .exe autonoma e non compilata con i pacchetti di runtime. –