Просмотр Дампа в Отладчике

Для всех дампов, инициированных условием, ProcDump записывает комментарий в дампе, который описывает, почему дамп был получен. Комментарий может быть замечен в начальном тексте, который представляет WinDbg, когда Вы открываете файл дампа. Первая строка комментария показывает командную строку ProcDump, которая использовалась, чтобы создать дамп. Вторая строка комментария описывает то, что инициировало дамп, наряду с другими подходящими данными при наличии. Например, если порог памяти передали, комментарий показывает предел фиксации памяти и использование фиксации процесса:

*** Обработайте превысил использование фиксации на 100 Мбайт: 107 Мбайт.

Если порог ЦП передали, комментарий показывает порог ЦП, продолжительность, и идентификатор потока (TID), который использовал самое большое количество циклов ЦП в период:

*** Обработайте превысил 50%-ый ЦП в течение 3 секунд. ЦП потребления потока: 4484 (0x1184).

Если порог счетчика производительности был превышен, комментарий сообщает о счетчике производительности, пороге, продолжительности, и TID, который использовал самое большое количество циклов ЦП в период. (Следующая команда должна быть введена на единственной командной строке с пространством, разделяющим период и "Поток".)

*** Счетчик "\Process (notepad_1376) \Процессорное время %", превышенное 5 в течение 3 секунд.

ЦП потребления потока: 1368 (0x558)

Сообщение об ошибке Windows может получить дампы катастрофического отказа, но ProcDump может быть легче сконфигурировать.

 

Если подвешенное окно, инициированное дамп, комментарий включает дескриптор окна в шестнадцатеричный. Если дамп был сразу получен, был синхронизирован, или был инициирован исключением или нормальным завершением, комментарий сообщает только о причине без дополнительных данных.

Чтобы избежать Вас имеющий необходимость изменить контекст потока на занятый поток (— [TID] s команда), открывая дамп, который был создан из-за ЦП или триггера счетчика производительности, ProcDump вставляет поддельное исключение, чтобы сделать это для Вас. Это очень полезно, когда Вы получаете многократные файлы дампа, потому что можно открыть каждый файл дампа, зная, что контекст потока по умолчанию - поток интереса. Вставка поддельного исключения в дамп приводит к отладчику, сообщая о лжи, положительной с текстом как следующее:

У этого файла дампа есть исключение интереса, сохраненного в нем.

DebugView

DebugView - приложение, которое позволяет Вам контролировать вывод отладки, сгенерированный от локального компьютера или от удаленных компьютеров. В отличие от большинства отладчиков, DebugView может вывести на экран вывод отладки пользовательского режима от всех процессов в пределах сеанса, так же как вывод отладки режима ядра. Это предлагает гибкое журналирование и параметры экрана, и это работает над всем x86 и x64 версиями Windows XP и более новый.

Каков Вывод Отладки?

Windows обеспечивает API, которые программы могут вызвать, чтобы отправить текст, который может быть получен и выведен на экран отладчиком. Если никакой отладчик не является активным, API ничего не делают. Эти интерфейсы облегчают для программ производить диагностический вывод, который может быть использован любым стандартным отладчиком, и это отбрасывается, если никакой отладчик не соединяется.

Вывод отладки может быть произведен и программами пользовательского режима и драйверами режима ядра. Для программ пользовательского режима Windows предоставляет OutputDebugString API Win32. 16-разрядные ­приложения, работающие x86 выпуски Windows, могут произвести отладку, выведенную, вызывая API OutputDebugString ­Win16, который передается API Win32. Для управляемых приложений Microsoft NET Framework обеспечивает Систему. Диагностика. Отладка и классы Трассировки со статическими методами это внутренне вызывает OutputDebugString. Те методы можно также вызвать от Windows PowerShell — например:

[Система. Диагностика. Отладка]:: Печать ("Некоторый вывод отладки").

Драйверы режима ядра могут произвести диагностический вывод, вызывая подпрограммы DbgPrint или DbgPrintEx, или несколько связанных функций. Программисты могут также использовать макросы KdPrint или KdPrintEx, которые производят вывод отладки только в сборках отладки и ничего не делают в сборках конечных версий.

Хотя Windows обеспечивает и ANSI и реализацию Unicode API OutputDebugString, внутренне весь вывод отладки обрабатывается как ANSI. Реализация Unicode OutputDebugString преобразовывает текст отладки, основанный на локали существующей системы и передачах это к реализации ANSI. В результате некоторые символы Unicode не могли бы быть выведены на экран правильно.

Дисплей DebugView

Просто выполните файл программы DebugView (Dbgview.exe). Это сразу начнет получать и выводить на экран вывод отладки Win32 от всех рабочих столов в текущем сеансе терминального сервера.

Отметьте, что Все интерактивные настольные сеансы внутренне реализуются как сеансы терминального сервера.

Как можно видеть в рисунке 7-13, первый столбец - DebugView-присвоенный, основанный на нуле порядковый номер. Разрывы в порядковых номерах могли бы появиться, когда правила фильтра исключают строки текста или если внутренние буферы DebugView переполняются во время чрезвычайно тяжелого действия. Порядковые номера сбрасываются всякий раз, когда дисплей очищается. (Фильтрация DebugView описывается позже в этой главе.)

Рис. 7-13 DebugView.

 

Второй столбец выводит на экран время, в которое элемент был получен, или в прошедшее время, или покажите время. По умолчанию DebugView показывает число секунд, так как первая запись отладки в дисплее была получена с первым элементом, всегда являющимся 0.00. Это может быть полезно, отлаживая связанные с синхронизацией проблемы. Этот таймер сбрасывается, когда дисплей очищается. Выберите Показывают Время от меню опций, если Вы предпочитаете, чтобы локальное время часов было ­выведено на экран вместо этого. Дополнительно, выберите Выставочные Миллисекунды из меню опций, если Вы хотите, чтобы отметка времени показала тот уровень гранулярности. Можно также сконфигурировать дисплей времени с параметрами командной строки: /o, чтобы вывести на экран показывают время, /om, чтобы вывести на экран показывают время с миллисекундами, и / на показать прошедшее время.

Вывод отладки находится в столбце Debug Print. Для вывода отладки пользовательского режима ID процесса (PID) процесса, который генерировал вывод, появляется в квадратных скобках, сопровождаемых выводом непосредственно. Если Вы не хотите PID в дисплее, отключите опцию PID Win32 в меню опций.

Можно выбрать одну или более строк вывода отладки и скопировать их в буфер обмена Windows, нажимая Ctrl+C. DebugView поддерживает стандартные методы Windows выбора многократных строк, таких как удержание Сдвига, нажимая или Клавиши со стрелкой вниз, чтобы выбрать последовательные строки, или удержание Ctrl, щелкая по непоследовательным строкам.

По умолчанию опция Force Carriage Returns включается, который выводит на экран каждую строку, которую передают к функции вывода отладки отдельной строке, завершается ли тот текст с возвратом каретки. Если Вы отключаете ту опцию в меню опций, DebugView буферизует синтезируемый текст в памяти и добавляет это к дисплею только, когда с возвратом каретки встречаются, или буфер памяти заполнен (приблизительно 4192 символа). Это позволяет приложениям и драйверам создавать выходные строки с многократными вызовами функций вывода отладки. Однако, если вывод сгенерирован больше чем от одного процесса, вывод может быть смешан, и PID, который появляется на строке, будет PID процесса, которые выводят возврат каретки или заполнили буфер.

Если текст какого-либо столбца слишком широк для того столбца, переместите мышь через это, и полный текст появится в подсказке.

Вывод отладки добавляется до конца списка, поскольку это производится. Функция Автопрокрутки DebugView (который является прочь по умолчанию) прокручивает дисплей, поскольку новый вывод отладки получается так, чтобы новая запись была видима. Чтобы переключить Автопрокрутку на и прочь, нажмите Ctrl+A или щелкните по значку Autoscroll на панели инструментов.

Установка Changing the Show Milliseconds подсказки не изменяет дисплей существующих записей.

Можно обновить эти записи, нажимая Ctrl+T дважды, чтобы переключить Свободное время Часов и назад на. Все записи тогда отразят новую установку для Выставочных Миллисекунд.

 

Можно аннотировать вывод выбором, Добавляют Комментарий из меню Edit. Текст, который Вы вводите в Добавлять диалоговое окно Комментария, добавляется к выходному дисплею отладки и к файлу системного журнала, если журналирование включается. Отметьте, что правила фильтра применяются к добавленным комментариям так же как отладить вывод.

Можно увеличиться, выставочное пространство для отладки, выведенной выбором, Скрывают Панель инструментов на меню опций. Можно также увеличить число видимых строк отладки, выведенной, выбирая меньший размер шрифта. Выберите Шрифт из меню опций, чтобы изменить шрифт.

Чтобы выполнить DebugView на заднем плане, не занимая место в панели задач, выбор Скрывается Когда Минимизировано от меню опций. Когда Вы впоследствии минимизируете окно DebugView, это будет казаться только как значок в области уведомлений (также известным как "лоток"). Можно тогда щелкнуть правой кнопкой по значку, чтобы вывести на экран Получение раскрывающееся меню, где можно хотеть включать или отключать различные опции Capture. Дважды щелкните по значку, чтобы вывести на экран окно DebugView снова. Можно включить опции Hide When Minimized на запуске, добавляя /t к командной строке DebugView.

Выберите Поверх остальных окон из меню опций, чтобы сохранить DebugView как самое верхнее окно на рабочем столе, когда это не минимизируется.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: