#windbg #remote-debugging
#windbg #удаленная отладка
Вопрос:
При выполнении удаленной отладки некоторые команды влияют только на локальный отладчик (отладчик, в котором вводится команда). Примеры:
.wtitle
.cls
.browse
.cmdtree
На данный момент все они выглядят как команды, связанные с пользовательским интерфейсом. Есть ли еще команды, которые выполняются только в локальном отладчике?
Мои исследовательские усилия:
- Я искал список в Google, но, возможно, условия поиска слишком распространены или я неправильно их понимаю.
- Я также попытался найти ссылку в самой справке WinDbg (
.hh
) . Но этот факт даже не задокументирован в затронутых командах, которые я нашел до сих пор.
Я понимаю, что это запрос на любимые внешние инструменты или ссылку. Так что, если вы действительно считаете, что это не по теме, тогда голосуйте за закрытие.
Ответ №1:
Вся обработка отладчика, включая выполнение всех расширений, выполняется в основном процессе отладчика. Таким образом, 99 % команд должны быть отправлены в механизм отладчика (начальный экземпляр отладчика) Единственные команды, которые выполняются только в удаленном отладчике, — это действительно несколько команд, связанных с пользовательским интерфейсом.
Я вызову одну пару команд, которые интересны по этой теме, которая является наиболее часто используемым удаленным отладчиком:
.srcpath
задает «путь к исходному коду» в движке отладчика. Именно отсюда механизм отладчика будет получать исходную информацию, если это необходимо — например, если расширение отладчика хочет получить доступ к исходному коду.
.lsrcpath
(l — для локального) задает «путь к исходному коду» в удаленном отладчике. Этот путь будет использоваться в windbg (и cdb kd также) для извлечения исходных файлов в пользовательском интерфейсе.
Ответ №2:
Все еще не полный список, но многие команды, которые не могут быть написаны сценариями (MSDN), затронуты:
.lscrfix // works on remote client only
.lsrcpath // works on remote client only
.open
.write_cmd_hist // writes local history only
.beep
.cls
.hh
.remote // Does not work in WinDbg anyway
Однако следующие из списка, похоже, работают:
.idle_cmd
.restart
Относительно .write_cmd_hist
: если вы хотите, чтобы все команды выполнялись во время сеанса отладки, неплохо открыть файл журнала ( .logopen
) в начале сеанса.