Как сделать окно окна «.cmdtree» при запуске в WINDBG?
Вопрос
Я следовал Блог Tess Ferrandez Для настройки пользовательской темы в Windbg.
Я также начал запустить Windbg автоматически с -c ".cmdtree c: mycmdtree.txt"
Это правильно открывает мой файл cmdtree как окно команд, но я не могу правильно докиться. Проблема, по-видимому, будет открыта Windows «Команды», которые можно открыть только после того, как вы открыли файл DMP, но открывая файл DMP, выключате выключатели выключателей Of «Base», поэтому какие-либо изменения в вашем рабочем пространстве не сохраняются.
Любые идеи?
Решение
Этот простой запрос оказывается на самом деле сложно. Позиции Windbg Windows сохраняются в рабочей области. WINDBG имеет несколько рабочих пространств по умолчанию:
- База - это рабочее пространство, которое используется, прежде чем начать отладку (без откровенного отвала, нет exe Open, не привязанному)
- За файл dump - для каждого отвала вы открытой, у вас есть рабочее пространство для этого файла
- На исполняемый файл - для каждого исполняемого файла вы открываете.
- Пользовательский режим - используется, когда вы являетесь живым для отладки пользовательского режима
- Режим ядра - используется, когда вы отладки в режиме ядра
- На архитектуру машины - 1 для x64, 1 для x86, & 1 для IA64
- Удаленный - используется, когда вы удалены отладки
Для любого данного типа отладки (т. Е. Живой пользовательский режим или анализ послеметем) вы обычно заканчиваете комбинацию настроек базы + ваш тип отладки.
Если вы открываете файл дампа, вы получаете базу + на файл дампа, если вы живете отладку в режиме пользователя, вы получаете базовую + пользовательский режим, если вы живете Kernel Debug Meath As X64, вы получаете базу + Kernel-Mode + X64
Все изменения, которые вы делаете в любом данном режиме, сохраняются в рабочем пространстве, который был перекрывается последним. Это означает, что если мы открываем файл дамп (поэтому мы базовый + на дамп), любые изменения в настройках будут сохранены в рабочем пространстве для этого дампа.
В дополнение к встроенным рабочим пространствам и всех их комбинациях имеются местами (клиенты) рабочие пространства. Это было бы, когда вы перейдете в файл> Сохранить рабочее пространство, и предоставьте имя, чтобы сохранить все настройки, которые вы могли затем включить при запуске Windbg, используя аргумент командной строки -w.
Проблема, в которой вы столкнулись, это то, что для того, чтобы все настроить, как вы этого хотите, вы должны иметь отладчик в активном состоянии (Exe Open, откройте дамп, отладку в прямом эфире) и когда вы идете, чтобы сохранить макет окна , он также собирается сохранить, какой EXE вы были открыты, или свал, или живая отладка, которую вы делали.
Ваша лучшая ставка - просто делать то, что вы уже делали, то есть просто использовать -C в реестре (HKEY_CLASSES_ROOT WINDBG.DUMPFILE.1 Shell Open Command). Это позволит вам просто дважды щелкнуть дамп и получите эти параметры командной строки каждый раз, когда вы выполняете анализ дампа. Затем вы можете создать ярлык для WINDBG, который также включает в себя командную строку, чтобы эти настройки были применены для других типов отладки, которые вы делаете.
Вот моя командная строка из режима выше:
«C: Debuggers x64 windbg.exe» -z "% 1" -Q -W Внутреннее -c ".load winde.dll; .enable_Unicode 1; .igonore_missing_pages 1; .Logopen / T C: Users Jasone Logs debug.log; как .p .Process / p / r; as .t .thyread / p / r; как! P! Process; как! T! Thread; as .f .frame; как dv / v / v / v / I / T; как .f .frame "
Что это делает?
Запускает отладчик, прикрепите к файлу Dump, не подскажите настройки рабочей области, откройте мое «внутреннее» рабочее пространство (созданное imed Workspace I создало) и запустите эти команды для загрузки расширений отладчика, настройки настройки и создания псевдонимов, которые облегчают мою жизнь Отказ