Cette requête simple s'avère vraiment compliquée. Les positions des fenêtres de WinDbg sont sauvegardées dans un espace de travail. WinDbg a plusieurs espaces de travail par défaut:
- base - ce qui est l'espace de travail qui est utilisé avant de commencer le débogage (pas dépotoirs à ciel ouvert, sans exe ouvert, attaché à rien)
- par fichier de vidage - pour chaque vous vider ouvert, vous avez un espace de travail pour ce fichier
- Par fichier exécutable - pour chaque fichier exécutable que vous ouvrez.
- en mode utilisateur - utilisé lorsque vous êtes en mode-utilisateur en direct le débogage
- en mode noyau - utilisé lors du débogage en mode noyau
- par l'architecture de la machine - 1 pour x64, 1 pour x86, & 1 pour IA64
- à distance - utilisé lorsque vous le débogage à distance
Pour tout type donné de débogage (c.-à-utilisateur de live mode ou d'analyse de vidage post-mortem) vous finissez généralement avec une combinaison de paramètres de base + Votre type de débogage.
Si vous ouvrez un fichier de vidage, vous obtenez BASE + Par fichier de vidage Si vous vivez debug-mode utilisateur, vous obtenez BASE + mode utilisateur Si vous vivez noyau déboguer une machine x64, vous obtenez BASE + kernel- mode + x64
Toutes les modifications que vous apportez à un mode donné sont enregistrées dans l'espace de travail qui s'est chevauché en dernier. Cela signifie que si nous ouvrons un fichier de vidage (nous sommes donc Base + Per dump), toutes les modifications apportées aux paramètres seront enregistrées dans l'espace de travail pour ce vidage.
En plus des espaces de travail intégrés et de toutes leurs combinaisons, il existe des espaces de travail nommés (clients). Ce sera lorsque vous allez dans Fichier> Enregistrer l'espace de travail et fournissez un nom pour enregistrer tous les paramètres que vous pourriez activer au lancement de Windbg en utilisant l'argument de ligne de commande -W.
Retour à votre question. Comment puis-je obtenir l'extension .cmdtree? Dans l'espace de travail de base, vous ne pouvez pas. La plupart des fenêtres ne sont disponibles que lorsque le débogueur n'est PAS en veille (dans son espace de travail BASE). Une fois que vous avez mis le débogueur dans l'un de ses états actifs, ces fenêtres sont disponibles. Le problème que vous rencontrez est que, pour configurer tout ce que vous voulez, vous devez avoir le débogueur dans un état actif (un exe ouvert, un dump ouvert, le débogage en direct) et quand vous allez à sauvez votre disposition de fenêtre, il va également enregistrer quel exe vous aviez ouvert, ou vider, ou le débogage en direct que vous faisiez.Votre meilleur pari est de simplement faire ce que vous faisiez déjà, c'est-à-dire simplement utiliser le -c dans le registre (HKEY_CLASSES_ROOT \ WinDbg.DumpFile.1 \ shell \ Open \ command). Cela vous permettra de simplement double-cliquer sur un vidage et d'obtenir ces options de ligne de commande chaque fois que vous effectuez une analyse de vidage. Vous pouvez ensuite créer un raccourci vers windbg qui incorpore également la ligne de commande afin que ces paramètres soient appliqués aux autres types de débogage que vous effectuez.
Voici ma ligne de commande de la clé de registre ci-dessus:
"c: \ débogueurs \ x64 \ windbg.exe" -Z "% 1" « .load winde.dll -c -Q -W interne; .enable_unicode 1; .ignore_missing_pages 1; .logopen/t C: \ Utilisateurs \ jasone \ Logs \ debug.log; aS .p .processus/p/r; aS .t .thread/p/r; processus aS! p! ; aS! t! thread; aS .f .frame; aS dv dv/V/i/t; aS .f .frame "
Qu'est-ce que cela fait? Lance le débogueur, joint au fichier de vidage, invite à enregistrer les paramètres de l'espace de travail, ouvre mon espace de travail interne (un espace de travail nommé que j'ai créé) et exécute ces commandes pour charger les extensions du débogueur, configurer les préférences et créer des alias. rends ma vie plus facile.
Avez-vous géré la configuration de l'ancrage Windows avec la réponse fournie? J'ai 2 problèmes: a) il docks, mais pas à la position que je veux et b) il accoste toujours une seconde fenêtre –