Re: DEBUG API Erreur: Descripteur non valide

Posté par DalKiT le 14/3/2006 20:31:13
Bonsoir,

J'ai enfin trouvé pourquoi le remplacement du UNION par une structure ne fonctionnait pas.

La manière la plus simple est bien de remplacer le UNION par une structure (Donc j'étais bien sur la bonne piste au départ):

_U est une structure
	uException 			est un EXCEPTION_DEBUG_INFO
	uCreateThread 		est un CREATE_THREAD_DEBUG_INFO
	uCreateProcessInfo 	est un CREATE_PROCESS_DEBUG_INFO
	uExitThread 		est un EXIT_THREAD_DEBUG_INFO
	uExitProcess 		est un EXIT_PROCESS_DEBUG_INFO
	uLoadDll 			est un LOAD_DLL_DEBUG_INFO	
	uUnLoadDll 			est un UNLOAD_DLL_DEBUG_INFO
	uRipInfo 			est un RIP_INFO	
FIN

DEBUG_EVENT est une structure
	
	dwDebugEventCode est un entier sans signe sur 4 octets//Type C : DWORD
	dwProcessId est un entier sans signe sur 4 octets //Type C : DWORD
	dwThreadId est un entier sans signe sur 4 octets //Type C : DWORD
	u est un _u


Ce qui change, c est la facon dont on recupere les valeurs de la nouvelle structure. En fait il faut créer un objet de chaque structure de la nouvelle structure et la "caster" (Comme en C). Un exemple pour EXCEPTION_DEBUG_INFO:

sException est un EXCEPTION_DEBUG_INFO 


Ensuite dans la cas de EXCEPTION_DEBUG_EVENT (Voir les autres messages pour plus de détails), il faut caster avec la fonction windev Transfert:

Transfert (&sException,&dbEvent:u,Dimension(sException))


Il ne nous reste plus qu'a récupérer le code de l exception:

sException:ExceptionRecord:ExceptionCode


Idem pour la structure LOAD_DLL_DEBUG_INFO.
Declaration d un objet:

sLoadDll est un LOAD_DLL_DEBUG_INFO


Puis récupération d une des valeurs de la structure en la "castant":

Transfert (&sLoadDll,&dbEvent:u,Dimension(sLoadDll))


Récupération du handle du module chargé:
sLoadDll:hFile


Ca pourra peut etre servir pour ceux qui souhaitent oter les UNION en utilisant windev.

Reste encore le problème du Thread bloquant

Bonne soirée

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=3693&post_id=15655