2009-02-27 9 views
6

Je suis un développeur travaillant sur Visual C++, mais dans mon projet il y a quelques composants Delphi. J'ai besoin de déboguer les composants Delphi pour résoudre certains problèmes.Comment déboguer un fichier DLL dans Delphi

Quelles sont les choses qui sont un must pour générer un fichier DLL dans le débogage, puis commencer le débogage dans Delphi?

Répondre

20

Dans Delphi 7, vous devriez faire ceci:

Projet | Options | Compilateur | Débogage | Déboguer les informations (cocher)

Ensuite, allez dans Exécuter | Paramètres | Hôte Application et entrez le nom de votre exe. Ajoutez des points d'arrêt dans votre code DLL, puis cliquez sur Exécuter. Votre exe sera chargé et vous pouvez déboguer les parties DLL dans l'EDI Delphi.

Si votre exe est déjà en cours d'exécution, cliquez sur Exécuter | Attacher au processus

- Je l'ai testé cela et trouvé que je devais aussi cocher la case « Inclure les symboles de débogage à distance » sur la page Linker des options de projet dans Delphi 7.

Je suis en mesure d'obtenir un point d'arrêt pour frapper en utilisant la course | Paramètres ainsi que Run | Attacher aux méthodes de processus. La DLL de test que j'avais créée avait une seule fonction stdcall et était chargée dynamiquement par une application de console Visual C++.

+0

@Chapelle. Etes-vous sûr que l'option Attacher au processus peut être utilisée pour déboguer la DLL? –

+0

J'ai fait la même chose mais le point de rupture ne me frappe pas. Je pense que la correspondance entre le code et le débogueur ne s'établit pas. Ne sera pas là le concept de PDB (présent dans vc 6) sera là. – coolcake

+1

les symboles de débogage à distance ne devraient pas être nécessaires – dummzeuch

4

Nous utilisons cela assez souvent (en utilisant Delphi).

Assurez-vous:

  1. activer toutes les options de débogage sur tous les projets (fichier DLL (s)). Et désactiver l'optimisation.
  2. Veillez à définir l'application hôte sur le bon fichier EXE.
  3. Créer le (s) fichier (s) DLL.

Vous pouvez désormais placer des points d'arrêt dans dll et exe. Et exécutez le fichier DLL à partir de l'IDE. Il démarre le fichier EXE et s'arrête aux points d'arrêt demandés.

Il fonctionne même lorsque les fichiers DLL sont liés dynamiquement (s'ils sont déchargés, les points bleus disparaissent).

0

La méthode suggérée par Gamecat est quelque chose que j'ai déjà utilisé.

Une autre façon est: J'ai le projet DLL, mais je fais aussi un projet "banc d'essai". Le projet "banc d'essai" a une forme qui peut directement exercer le code qui serait normalement utilisé dans une DLL.

Questions connexes