2012-12-20 21 views
8

Premere F12 mentre il programma è in esecuzione nel debugger deve interrompere l'esecuzione e aprire il debugger. Funziona correttamente su Windows XP (testato con D2007 e XE2) ma non funziona su Windows 7 e 8 (anche testato con D2007 e XE2, testato su tre computer).F12 non funziona in Delphi debugger su Windows 7/8

Registro è impostato correttamente (Windows 7):

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug] "UserDebuggerHotKey" = dword: 00000000 "Debugger" = "\" C: \ Windows \ system32 \ vsjitdebugger.exe \ "-p% ld -e% ld"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug \ AutoExclusionList] "dwm.exe" = dword: 00000001

L'installazione di XP imposta anche "Auto" = "1" e omette AutoExclusionList ma la duplicazione di tali modifiche sulla macchina Windows 7 non porta a nulla.

La cosa strana è che Delphi sembra essere a conoscenza della F12 premuta. Quando eseguo un programma in un debugger su una macchina Windows 7 e premere il tasto F12, la finestra Registro eventi in Delphi mostra Start

Discussione: ID thread: 4080. Processo Project73.exe (7108)

Exit Discussione : Thread ID: 4080. Process Project73.exe (7108)

È solo che il punto di interruzione non viene attivato e l'applicazione continua a funzionare.

Qualcuno sa come ripristinare questa funzionalità in Windows 7/8?

+0

Nel corso della giornata abbiamo dovuto installare un plug-in IDE per fermare F12 inciampare su un 'int 3'. Usiamo F12 come tasto di scelta rapida. Per fortuna MS si è liberato di 'int 3' nelle ultime versioni di Windows. –

risposta

11

Il debugger rileva che un nuovo thread è stato avviato da Windows, ma non sa cosa sia quel thread. In XP questo thread viene eseguito in un punto di interruzione int 3 (DebugBreak()), ma con Vista e Windows 7+ il punto di interruzione non viene più colpito anche se si imposta la chiave di registro.

Esiste un plug-in IDE Delphi che rileva il thread e chiama la funzione WinAPI DebugBreak(). http://andy.jgknet.de/blog/ide-tools/unsupported-tools/

+0

Grazie, Andy, tu regoli! – gabr

Problemi correlati