est-il possible d'utiliser des commandes WINDBG comme ! verrouille code> et
.loadby sos mscorwks code> dans la fenêtre de commande Visual Studio (dans une session de débogage)? J'ai remarqué que je peux utiliser par exemple
k code> pour imprimer une trace de pile, alors je me demandais s'il y a un moyen d'accéder aux autres commandes. P>
3 Réponses :
Oui, vous pouvez le faire. p>
! Charger SOS CODE> LI>
- Vous êtes maintenant libre d'utiliser l'une des commandes WINDBG comme
! EeHeap ,! Dumpheap Code> Li>
ol>
Il y a quelques conditions. Vous devez activer le débogage du code non géré dans vos propriétés du projet. Normalement dans la version 64 bits Studio ne prend pas en charge cela. P>
Amusez-vous. P>
Cool, merci pour ça. Avez-vous une idée si je peux avoir accès aux appels WINDBG non gérés tels que des serrures ou analysez-vous?
@NGOOZEFFF: Je pense que seules les commandes SOS sont possibles ici! Quelqu'un est corrigé-moi si je me trompe
Désolé d'être nitpicking ici, mais ce ne sont pas des commandes WINDBG, mais des commandes SOS. Malheureusement, les commandes Windbg régulières ne sont pas disponibles auprès de VS Afaik, ce qui le rend un peu plus difficile à utiliser SOS. En outre, vs ne prend pas en charge toutes les interfaces IDEBUGCIPLIENT nécessaires, la production de SOS est donc un peu bruyante dans vs.
Brian a raison, la réponse stricte à la question est non. SOS n'est pas windbg. En outre, WINDBG a une version x64, alors que SOS n'a pas, c'est-à-dire si vous souhaitez déboguer des applications x64 sans les recompiler dans 32 bits, puis Windbg, à l'extérieur vs i> est le seul moyen d'aller
! Charger SOS CODE> échoue sur VS2013: "identifiant" charge "est indéfini".
Visual Studio 2012 a le transport "Mode utilisateur Windows Débogueur" dans la boîte de dialogue "Joindre à Process". Cela vous permet d'utiliser des commandes WINDBG dans la fenêtre immédiate. P>
Source: Utilisez le moteur WINDBG dans le débogage de mode utilisateur Visual Studio P>
J'ai Visual Studio 2012 Professional (Mise à jour 4) installée. Cependant, le transbugger Windows Mode Windows Mode i> ne s'affiche pas pour moi. Certaines sources affingent que vous devez installer le WDK au-dessus d'une installation VS, mais des informations fiables ne semblent pas être facilement disponibles. Alors, quelle est l'accord?
Du lien: Une autre mise en garde est que vous devez actuellement installer le WDK au-dessus de Visual Studio 11 pour obtenir l'intégration du débogueur. Code> Cela n'a pas fonctionné pour moi non plus avant d'installer le WDK.
Je peux confirmer que l'installation de Windows 8.0 WDK en haut de Visual Studio a également installé l'intégration Visual Studio. Je peux maintenant choisir Windows Mode utilisateur du débogueur i> comme le transport (ou choisissez un autre débogueur d'un projet de débogueur i>). Il semble fonctionner de manière fiable, même s'il est lent pour moi. Certaines fonctionnalités du débogueur vs sont manquantes (par exemple, traces de traces i>), tandis que d'autres ont changé (par exemple, une syntaxe différente pour définir les points d'arrêt de fonction). Les puissantes commandes de rallonge Windbg comme ! Gérer code> ou
! Les verrous code> sont maintenant disponibles auprès de la fenêtre VS GUI ( du débogueur Fenêtre immédiate i>).
Remarque: Pour Visual Studio 2015, WDK 10 est requis pour le transport "Windows Mode User Debugger".
À partir du kit de développement du pilote Windows (WDK) 8.0 Le débogueur Windows est intégré à Visual Studio (voir environnements de débogage ). L'installation du WDK au-dessus d'une installation Visual Studio permettra à un développeur de choisir un certain nombre de debuggers à partir de la boîte de dialogue Joindre à Process em> ou de définir le moteur de débogage dans le projet du débogueur d'un projet em> réglages. Cela a été vérifié pour Visual Studio 2012 et 2013. La manière dont j'ai lu le lien MSDN ci-dessus, cela devrait également fonctionner pour tout autre IDE pris en charge par le WDK 8.0 et supérieur. P>
Bien que Windbg offre beaucoup de commandes puissantes, il y a aussi des inconvénients. Cette liste n'est pas exhaustive et contient simplement ces problèmes que j'ai rencontrés: P>
.sympath code>. Li>
WINDBG code> 'S
BP code> Accepte une commande à exécuter lorsque le point de rupture est touché, vous pouvez donc imiter un point de trace. Par exemple,
BP Combase! COSETERRORINFO "DT Combase! CERROROBJECT% EDX; G" CODE>
Avez-vous pu utiliser cette méthode avec VS 2017 et WDK (en particulier la version 1507+)? Débogage d'un processus en mode utilisateur à l'aide de la page Visual Studio indique "Cette fonctionnalité n'est pas disponible" pour cette combinaison, et lorsque j'ai essayé (après avoir changé la cible sur "localhost"), j'ai continué à obtenir un e_fail avec "impossible de se connecter / Opération non prise en charge "! J'essaie de m'assurer que ce n'est pas seulement un problème de configuration à ma fin.