windbg: вывод команды в текстовый файл

Как я могу сохранить вывод команды в WinDbg в текстовый файл?

4 ответа

Решение

Запустите WinDbg из командной строки, используя опцию -logo:

windbg.exe -logo logfile.txt

Это сделает все записанное в указанный файл. Вы можете найти более подробную информацию о параметрах командной строки здесь.

Или, если вы уже находитесь в сеансе отладки, вы можете использовать команду.logopen, чтобы начать ведение журнала. Для получения дополнительной информации об этой команде см. Здесь

Или вы можете нажать edit->Open/Close log file в WinDbg GUI.

Больше информации о файлах журнала здесь.

Вы можете использовать.logopen, все команды, которые вы вводите и отвечаете от windbg, будут регистрироваться, а затем использовать.logclose для сброса данных в

Вы также можете воспользоваться графическим редактором WinDbg "Редактировать> Написать текст окна в файл...", если вам будет проще.

Чтобы отправить вывод определенной команды в файл, возьмите (я использую Tee.bat), поместите его в каталог, на который распространяется Windows.PATHпеременная среды (или добавьте каталог, в который вы ее поместили). Затем используйте следующий синтаксис из графического интерфейса WinDbg для отправки вывода команды в файл.

      .shell -ci "<command>" tee <file>

.shell -ci "!gcroot 000002b56c414750" tee c:\path\out_01.log

есть недокументированный!!аббревиатура.shell. Итак, вы можете просто сделать:

      !! -ci "!gcroot 000002b56c414750" tee c:\path\out_01.log

Фон

Вы можете запускать команды оболочки в графическом интерфейсе WinDbg. Синтаксис : _

      .shell [Options] [ShellCommand] 
.shell -i InFile [-o OutFile [-e ErrFile]] [Options] ShellCommand

Здесь я нашел решение отправить вывод команды в буфер обмена.

      .shell -ci "<command>" clip

Если вы можете отправить вывод в , разве нельзя отправить его в файл, например?

      .shell -ci "<command>" > <file>
.shell -ci "!gcroot 000002b56c414750" > c:\path\out_01.log

Было бы неплохо, но это не работает . В документах MS я нашел этот пример.

      .shell -ci "!process 0 7" perl.exe parsemyoutput.pl

Таким образом, можно отправить вывод в приложение. Как и в приведенном выше примере с использованиемclip. И вот тут-то и появился TeeTee . Но вы можете использовать любой другой скрипт или .exe, который берет вывод и сохраняет его в файле или в другом месте.

Другие вопросы по тегам