J'ai écrit une application C#, où une grande partie du travail est effectuée dans un back-end C++. Maintenant, j'ai développé activement les deux côtés, et l'itération actuelle de l'extrémité arrière lance une violation d'accès dans une fonction spécifique. Comment puis-je aller déboguer cela? VS ne casse pas les exceptions ou les points d'arrêt dans le code natif, ni affiche la pile d'appel ou les locals du code natif, même si les deux projets sont construits dans la même solution. Je préfère éviter d'avoir à revenir en arrière et à jeter tout mon code natif avec des déclarations de journalisation.Débogage du code natif lors de l'appel à partir de
Répondre
VS déboguera également le code natif si vous activez le débogage en mode mixte (et recompilez votre projet).
Voir l'explication de Microsoft: http://msdn.microsoft.com/en-us/library/kbaht4dh.aspx
Peut confirmer cela. Il va ralentir l'application déboguée d'un ordre de grandeur, donc vous finirez probablement par l'allumer et l'éteindre régulièrement. –
Pouvez-vous expliquer si cela fonctionne sur mon application déployée. Parce que malheureusement mon formulaire Windows est écrasé alors que la forme est proche. J'utilise un fichier dll C++ dans mon projet –
En utilisant Visual Studiovous pouvez joindre le débogueur de votre projet C++ natif à votre fonctionnement C# application.
Avant de fixer le débogueur et l'exécution de votre application C#
- Ouvrez votre projet C++ natif dans VS.
Assurez-vous que vous êtes configuré en mode débogage. Reconstruisez ensuite votre code C++ natif .
Ajoutez les points d'arrêt où vous souhaitez rompre et commencer à passer le code . Assurez-vous que vous avez placé vos points d'arrêt dans le code auquel l'application C# appelle.
Si votre application C# est le projet de démarrage de votre solution, sous le nœud de débogage dans vos projets pages de propriétés assurez-vous de Cochez la case « Activer le débogage du code natif », puis reconstruire l'ensemble de la solution .
Sinon, vous devrez reconstruire l'application C# en référence aux DLL nouvellement compilées . Exécutez l'application et attachez le débogueur VS du projet C++ à l'application C#.
Pour ce faire, allez dans l'onglet Debug -> Attach to Process -> sélectionnez l'application C#.
- 1. Débogage du code natif
- 2. Appel d'un rappel natif à partir du code .NET géré (lors du chargement du code managé à l'aide de COM)
- 3. Débogage du code natif dans Visual Studio Proff
- 4. Débogage du code natif (DLL C ANSI) et du code managé (assemblage C#)
- 5. Débogage Android natif
- 6. code de débogage à distance non géré
- 7. Problème lors de l'ajout de Viewport2DVisual3D à partir du code
- 8. Appelez le code natif spécifié lors de l'exécution
- 9. Erreur de compilateur interne lors de la compilation du code Android natif
- 10. Code natif de Safari
- 11. Android: Comment diffuser l'intention du code natif?
- 12. Erreur d'exécution lors de l'appel Contestation code natif du code managé
- 13. Obtenez une erreur "sqlceqp35.dll" lors du débogage mais pas lors de l'exécution du code déployé
- 14. débogage du code Python
- 15. Erreur lors du débogage
- 16. EXC_BAD_ACCESS lors du débogage
- 17. Valeurs du pointeur de consignation sur le code natif Android
- 18. Puis-je avoir du code managé dans du code natif?
- 19. Est-il possible de démarrer un programme externe à partir du répertoire cible lors du débogage?
- 20. Appel aC# .dll de C++ natif du code visuel
- 21. Passage du pointeur de java à natif
- 22. Quelle est la meilleure façon d'accéder à SOAP WebServices à partir du code natif portable?
- 23. Comment voir le code des bibliothèques externes lors du débogage
- 24. Pourquoi le code natif appelé à partir de .net donne-t-il un résultat différent de l'appel d'un programme natif?
- 25. Comment déboguer AccessViolationException provenant du code natif
- 26. Comment ignorer le code d'assemblage lors du débogage?
- 27. Air2.0, Erreur lors de l'accès à l'API de processus natif
- 28. xcode: calcul de l'expression lors du débogage
- 29. Capable de compiler du code natif depuis apdfviewer?
- 30. [net] comment injecter du code de débogage à un assemblage?
Quelles versions OS et VS? VS2008 et les versions antérieures ne prennent pas en charge le débogage en mode mixte en mode 64 bits. –
@Steve: .net 4.0 implique VS 2010 – Vlad