VC++ 6.0 exception 0xC0000005 (Access Violation) occurred in "c:\windows\system3

sebastien_pelle Messages postés 2 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006 - 15 nov. 2006 à 10:41
sebastien_pelle Messages postés 2 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006 - 16 nov. 2006 à 15:02
Bonjour,

Je travaille sur la migration d'une application tournant sous W2K vers WXP SP2. Je
suis embeté pour le moment par un exe qui crash. L'exe en question est un
serveur OLE

Sous W2k : tout va bien, ca fonctionne bien.

Sous WXP SP2 : J'ai une erreur concernant ole32.dll à l'address 0x001245CD.
Bien evidement, les details de l'erreur, c'est du chinois pour moi. Je lui
ai donc fait un petit coup de Profile et j'ai obtenu le resultat suivant :

00:01:16.875: First chance exception 0xC0000005 (Access Violation) occurred
in "c:\windows\system32\OLE32.DLL" at address 0x776045CD by thread 1.
00:01:16.875: Second chance exception 0xC0000005 (Access Violation) occurred
in "c:\windows\system32\OLE32.DLL" at address 0x776045CD by thread 1.
00:01:16.875: Thread 1 exited with code -1073741819 (0xC0000005).
00:01:16.890: Thread 24 exited with code -1073741819 (0xC0000005).
00:01:16.890: Thread 2 exited with code -1073741819 (0xC0000005).
00:01:16.906: Thread 3 exited with code -1073741819 (0xC0000005).
00:01:16.906: Thread 23 exited with code -1073741819 (0xC0000005).
00:01:16.906: Exited "c:\program files\rtac\RTACSERVER.EXE" (process 0x354)
with code -1073741819 (0xC0000005) by thread 25.
00:00:02.344: Entrypoint reached. All implicit modules have been loaded.

C'est deja plus clair non ? :-)

Donc apparement (arretez moi si ma demarche n'est pas bonne), l'erreur se
situe a l'addresse 0x776045CD. admettons. Un ptit coup de Dependency walker
sur mon exe, dans la Module List View, si on classe les module par Prefered
Base, on a OLE32.DLL a l'address 0x774E0000 sur un taille de 0x0013D000. si
on prend l'address 0x776045CD, on lui soustrait 0x774E0000, on obtient
0x001245CD. magique. Toujours dans Depedency Walker, on regarde dans le
Export Function List View, et on cherche l'adresse 0x001245CD. Bien sur,
elle n'existe pas. tout ce qu'on voit, c'est qu'a l'addresse 0x001225E8 il y
a la fonction WdptInterfacePointer_UserMarshal. et a l'address 0x00124EE2 on
a la fonction WdptInterfacePointer_UserUnmarshal.

voila voila .. si qqn a compris qqch a ceci, et qu'il serait en mesure de me
demystifier tout ca, je suis preneur.

Pour l'instant je gratte du coté du Model COM/DCOM, a cause du Marshal. mais
bon, je ne suis pas sur de moi.

Merci de vos reponse ;-)

Sébastien PELLE
PS : J'ai deja essayé de recompiler sous XP, meme resultat ;-)

1 réponse

sebastien_pelle Messages postés 2 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
16 nov. 2006 à 15:02
Nouveaux elements .. j'ai identifié la ligne qui generait le probleme. C'est une ligne ou il n'y a que DispatchMessage(&msg);

Interressant me direz vous.d mais le truc, c'est que cette fameuse ligne estdans une boucle, et les deux premieres occurencs de cette bouvle ne generent pas d'erreurs.

'fin voila .. c tout .. :-)

A+

Sébastien PELLE
0
Rejoignez-nous