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

C++Builder Discussion :

Debug de dll sous C++ Builder


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut Debug de dll sous C++ Builder
    Bonjour,

    je tente de débugger une DLL écrite en C++ sous l'environnement
    C++ Builder.

    J'ai indiqué le nom de l'application à lancer (qui charge dynamiquement
    ma DLL)
    J'ai indiqué que la DLL était à chargement différé (options évoluées du lieur)

    Résultat : le programme s'exécute, la DLL est bien chargée mais il
    n'ya pas de stop sur les points d'arrêt.

    Remarque : il est arrivé que ça tombe en marche dans le passé ! :o

    si quelqu'un possède le "know how" sur le sujet je suis preneur.

    merci,
    Jean

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Points : 537
    Points
    537
    Par défaut
    Pour ma part, j'ai créé un project Groupe avec les sources de ma DLL et de mon Pgm qui fait les appels et ensuite je déclare dans "Exécuter le nom de mon appli hote" (celle qui appelle la DLL) et ça fonctionne bien.

    Je lance ensuite ma DLL (qui lance le PGM Hôte) et c'est bon.

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Pour être sûr, je te détaille comment je fais (j'utilise Access qui lie un DLL). (PS: J'ai BCB en anglais, alors je te mets les noms de commande en anglais)
    1) Compiler la DLL avec les info de debug
    2) Dans le menu Run --> Run Parameters, je mets le nom de mon appli qui appelle la DLL et éventuellement ses paramètres
    3) Je m'assure que mon appli appelle bien la DLL qui se trouve dans le répertoire de mon projet (cette partie est importante car BCB ne "surveille" que le fichier DLL qu'il a construit: si je déplace la DLL dans System32 par exemple, alors elle ne sera debuggée)
    4) Je lance l'appli depuis BCB avec "Run"
    5) Les breakpoints n'apparaissent qu'une fois que la DLL a été chargée par l'appli. Il y a souvent plusieurs appels (notamment à DllEntryPoint) qui sont quand même interceptés par le debugger

    Bonne chance

  4. #4
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut Debug de DLL sous C+= Builder
    Bonjour,

    globalement la description que tu fais du "processus" est conforme à la façon dont je procède.

    Depuis que j'ai déposé ma question j'ai eu un fonctionnement hératique du debogguer ce qui n'est jamais facile à résoudre...

    Pour vous éclairer sur l'utilisation de ma DLL : j'ai développé, en Delphi" un "COM Add-INS" pour Excel (donc une première DLL) qui est un frontal d'optimisation : il permet de charger à la volée des DLL d'optimisation et de les utiliser depuis EXCEL.

    La DLL que j'essaie de débugger est l'un de ces optimiseurs et est codée en C (récupération d'un code Open-Source sur le net). J'ai donc intégré ce code C dans un projet C++ Builder et j'obtiens un fonctionnement relativement satisfaisant.

    Le seul petit problème est lorsque je veux débogguer la DLL : les points d'arrêts sont parfois reconnus parfois non ! :o

    Pourtant j'ai vérifié à chaque fois que la DLL chargée était la bonne (option "voir modules" dans C++ Builder), que la compilation était bien avec les options de debug activées...

    Quoi qu'il en soit je vous remercie de vos réponses...

    Jean

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Donc tu appelles une DLL depuis une DLL qui est elle-même appelée par Excel... C'est effectivement une situation complexe.

    J'ai aussi un comportement bizarre du debugger dans le cas où j'ai un descendant d'une classe template. Dans mon cas, les fonctions de la classe parente ne sont pas traitées par le debugger :-( Peut-être est-ce le même problème...

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 73
    Points
    73
    Par défaut
    Bonsoir,

    En fait la DLL que je n'arrive pas à debugger est plutôt du code
    C que C++, il s'agit d'un programme d'optimisation écrit en Fortran
    à l'origine puis traduit en C.

    Cette a.m. j'ai eu à nouveau des comportements hératiques.

    Je vais essayer de me contenter de ce qui est disponible...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DLL Delphi pour utilisation sous C++ Builder
    Par kurul1 dans le forum Langage
    Réponses: 8
    Dernier message: 25/06/2008, 10h54
  2. Enrgistrer une dll sous IIS
    Par jeff37 dans le forum ASP
    Réponses: 2
    Dernier message: 12/07/2004, 17h23
  3. DLL sous C++ builder 6
    Par ovdz dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/08/2003, 14h15
  4. dll sous cygWin
    Par victorracine dans le forum C
    Réponses: 10
    Dernier message: 31/07/2003, 11h33
  5. Chargement dynamique de DLL sous Unix
    Par Willou dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 18/12/2002, 18h25

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