40 votes

Est-il possible d'écrire des extensions pour le débogueur de Delphi?

Je sais qu'il y a une API pour la création d'extensions pour Delphes. J'utilise le GExperts paquet et divers JVCL experts fréquemment. Mais je n'ai jamais vu aucun des extensions pour le débogueur. Il serait très agréable, par exemple, pour être en mesure d'enregistrer les téléspectateurs pour divers objets au lieu d'avoir à les examiner dans l'Inspecteur. (Un formulaire avec un contrôle d'image qui affiche un TImage, par exemple, ou d'une grille qui affiche le contenu d'un jeu de données.)

Existe-il des Api qui vous permettent d'étendre Delphi débogueur de cette façon?

EDIT: Ce n'était pas disponible quand j'ai écrit la question, mais Delphi 2010 fournit un moyen de le faire.

17voto

Khan Points 176

Dans ToolsAPI.pas source, il existe des interfaces API pour le débogage. Vous pouvez être informé lorsqu'un événement de débogage s'est produit, des informations sur les points d'arrêt, le processus en cours de débogage, etc. avec cette API. Mais il semble qu'il n'y ait pas de support pour les variables ou leurs valeurs. Il n’existe donc pas de moyen facile de mettre en œuvre votre demande sans de vilains stratagèmes.

4voto

Moritz Beutel Points 1689

De base débogueur visualiseurs peut être mis en œuvre avec l'Évaluation des interfaces exposées par l'OTA. (Exemples pour débogueur visualiseurs peut être trouvé ici et ici.)

Une intégration plus profonde dans le débogueur est possible (par exemple, j'ai écrit une petite extension pour C++Builder qui permet le débogueur pour évaluer les objets réels derrière une interface) - mais comme Khan a souligné, pour atteindre un tel niveau d'intégration, vous aurez besoin de recourir à tout un peu sale hacks.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X