Avec Delphi j'ai écrit une DLL qui peut être appelée à partir de Java via JNA (Java Native Access). Les méthodes dans cette DLL sont simplement des opérations simples, mais pour une utilisation future et des invocations plus complexes, je voudrais savoir comment je peux utiliser le débogueur Delphi, si la DLL est appelée directement depuis Java (ou depuis l'IDE Java).Comment déboguer une DLL appelée à partir de Java dans Delphi?
Répondre
Je crois que la réponse à cette question serait la même que pour la question Stack Overflow How to debug a DLL file in Delphi. En fait, puisque vous déboguez le fichier DLL de Delphi dans un environnement Delphi, peu importe qui se trouve dans la pile d'appels la plus élevée.
Il fonctionne si je définiront l'application hôte (Java) et définir les bons arguments:
- application hôte: C: \ Program Files \ Java \ jdk1.6.0_14 \ jre \ bin \ java.exe
- Paramètre: -cp "/path/to/test.jar" junit.textui.TestRunner AppTest
Les arguments de ligne de commande texte JUnit TestRunner sont expliqués ici: http://junit.sourceforge.net/junit3.8.1/javadoc/junit/textui/TestRunner.html
Pourquoi ne pas déboguer la DLL dans Delphi en premier? Il existe un framework de test unitaire pour Delphi appelé DUnit. Vous voudrez toujours écrire des tests d'intégration pour le système complet, mais vous pouvez simuler la dépendance externe dans vos tests unitaires JUnit.
Le vieux proverbe dit que «la preuve du pudding est en train de manger» - en appelant la DLL à partir de Java, il est possible d'analyser les erreurs, par exemple avec de mauvais types de données, des pointeurs, etc. Les tests DUnit peuvent être utilisés comme un filet de sécurité supplémentaire bien sûr. Les tests JUnit couvriront l'intégration de la DLL et des opérations connexes du côté Java, et si ce test d'intégration échoue, il est nécessaire d'analyser le flux de données. – mjn
@mjustin: Je suis tout à fait d'accord que vous voulez des tests d'intégration. Tout ce que je suggère est de tester les classes isolément (tests unitaires) en plus de cela. Vous pouvez avoir votre gâteau et le manger aussi! :) – TrueWill
Si vous vous moquez de la dépendance externe (la DLL), ce n'est plus un très bon test d'intégration. Vous avez essentiellement répondu à la question de savoir comment déboguer une DLL appelée par Java en suggérant de déboguer une DLL * non * appelée par Java. –
- 1. Comment déboguer un fichier DLL dans Delphi
- 2. Comment déboguer une DLL à partir de VS2008?
- 3. Impossible de déboguer Dll non géré à partir de C#
- 4. Comment faire à distance de débogage de DLL dans Delphi 7 à partir de zéro
- 5. DLL de débogage appelée avec CeRapiInvoke
- 6. Exportation d'un symbole global à partir d'une DLL Delphi
- 7. Comment appeler une DLL Delphi de VB6
- 8. comment charger delphi tframe de dll à delphi application
- 9. Delphi appeler une DLL
- 10. Déboguer DLL dans une solution différente
- 11. Comment déboguer un fichier .dll?
- 12. Appelez la classe de Delphi à partir de Java
- 13. Comment déboguer une exception d'enregistrement de DLL post-compilation regsvr32?
- 14. Comment déboguer ctypes appel de C++ dll?
- 15. Comment déboguer l'application Web Java dans NetBeans?
- 16. Comment déboguer une application Delphi avec une sortie redirigée
- 17. déboguer une DLL de java java-> jni.dll -> app.dll -> app.dll
- 18. Appel d'une méthode DLL delphi à partir du code C#
- 19. Comment déboguer dans le fichier source dll à partir du projet Web
- 20. Delphi DLL - événements TClientSocket
- 21. Déboguer une erreur de convention d'appel de DLL incorrecte
- 22. variable non statique appelée à partir du contenu statique, java
- 23. Dépassement de pile de la DLL native appelée à partir de l'application gérée
- 24. Java: comment déboguer une déclaration JSTL invalide?
- 25. Comment appeler DLL à l'intérieur de Java?
- 26. Débogage de ma DLL Windows pouvant être appelée à partir d'un service Windows
- 27. Erreur d'application Delphi avec Ole dans une DLL
- 28. Taille dll (déboguer et libérer)
- 29. comment déboguer l'application java dans blackberry
- 30. Débogage d'une DLL à partir de VS2008 dans VC6
Pour déboguer une DLL, vous devez spécifier une application hôte (comme le suggère le message). Vous pouvez le faire via le menu: "Démarrer" - "Paramètre". –