Retour <-- Vers Partie 1		  			  	Vers Partie 2 -->Retour


.break .if DBEvent.dwDebugEventCode==EXIT_PROCESS_DEBUG_EVENT


DBEvent, vouv vous rappelez, c'est notre structure pour stocker les 'debugging événements'.
dwDebugEventCode, c'est le type d'événement.

Reportez vous au lien DEBUG_EVENT si vous ne vous rappelez plus de cette structure.
Ici, c'est bien le type d'événement stocké dans la structure DBEvent qui nous intéresse. Mais on aurait aussi pu s'intéresser à DBEvent.dwProcessId ou DBEvent.dwThreadId.



Donc là, si le 'debugging événement' récupéré dans notre structure est 'EXIT_PROCESS_DEBUG_EVENT' (le programme cible termine son Process, en fait le programme cible se ferme avec ExitProcess ou TerminateProcess) alors on fait un 'break' dans le débugger. Il sort de sa 'boucle de debugging' et va à sa fin pour lui aussi se fermer.

Donc si le debugger trouve un ExitProcess dans le programme cible, alors lui aussi se dirige vers son propre ExitProcess.