IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Debug d'une DLL ISAPI pour serveur Apache


Sujet :

Visual C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Debug d'une DLL ISAPI pour serveur Apache
    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.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Citation Envoyé par patchichi Voir le message
    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.
    Deux solutions :

    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).

    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

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Clarification de la question
    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.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    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.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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 ?

    Merci.

Discussions similaires

  1. VS2008. Config EDI pour debug d'une DLL ?
    Par squale69 dans le forum Visual Studio
    Réponses: 1
    Dernier message: 09/03/2010, 18h24
  2. Réponses: 1
    Dernier message: 10/02/2009, 21h30
  3. [APACHE] Chx d'un OS + Machine pour Serveur Apache
    Par Mattius007 dans le forum Apache
    Réponses: 8
    Dernier message: 26/04/2006, 18h46
  4. probleme de debug d'une dll sur pc 64bits
    Par giova_fr dans le forum MFC
    Réponses: 2
    Dernier message: 12/12/2005, 16h40
  5. Réponses: 3
    Dernier message: 21/10/2005, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo