Bonjour, j'aimerais savoir comment faire pour debbuger une dll ISAPI cr�� avec un projet VC++ 6 ou 2005 pour la tester et la "servir" avec le serveur Apache. Merci d'avance.
Version imprimable
Bonjour, j'aimerais savoir comment faire pour debbuger une dll ISAPI cr�� avec un projet VC++ 6 ou 2005 pour la tester et la "servir" avec le serveur Apache. Merci d'avance.
Bonjour,
Deux solutions :
:arrow: Debugger le serveur Apache et attendre les appels � la DLL. (en pratique, vu la taille du programme et l'impossibilit� de savoir � quel moment pr�cis sont appel�es les fonctions de la DLL, c'est la moins viable des solutions).
:arrow: Mettre un DebugBreak() (ou __debugbreak) dans les fonctions de la DLL que l'on souhaite tracer, recompiler la DLL en mode debug et d�marrer le serveur Apache. Le DebugBReak() va faire crasher la DLL (et par extension le serveur).
S'assurer que VS 2005 est le debuggeur JIT et s'attacher au processus Apache. Le mieux est alors d'avoir les symboles (fichier *.pdb) de la DLL correctement charg�s (sinon la pile d'appel est illisible ou fausse ce qui n'aide pas � tracer).
Une fois que le debuggeur s'est attach� au processus, on se retrouve � l'endroit exact o� est situ� le DebugBreak(). Il n'y a plus qu'a tracer le code.
C'est p�nible mais la seule solution pour un programme aussi touffu.
P.S : Pour DebugBreak(), voir : http://msdn2.microsoft.com/en-us/lib...ey(VS.80).aspx
En fait, je me suis mal exprim�e : le pb est que je n'arrive pas � ex�cuter mon projet. Dans Visual Studio, quand je tape F5 ou Execute du menu Build, une fen�tre intitul�e "Executable for Debug Session" s'ouvre et demande d'indiquer l'executable File Name. Et l� je ne sais pas quoi mettre.:(
non ce n'est pas comme �a...
tu doit attacher le debugger a un process existant .
la dll lue par apache doit �tre la version debug.
Pour construire et tester la dll dans Visual Studio pour IIS il faut sp�cifier, dans la cat�gorie G�n�ral de l'onglet Debug de la rubrique Project Settings :
\winnt\system32\inetsrv\inetinfo.exe pour Executable for Debug Session
-e W3Svc pour Program arguments.
Qu'en est-il si on utilise Apache ? :roll:
Merci.