Главная » 2017 » Ноябрь » 16 » winedbg
00:32
winedbg

SEO sprint - Всё для максимальной раскрутки!

ИМЯ

winedbg - отладчик вина


СИНТАКСИС
winedbg [опции] [имя программы [аргументы программы] | pid]

winedbg --gdb [параметры] [имя программы [параметры программы] | pid]

winedbg --auto pid

winedbg --minidump [file.mdmp] pid

winedbg file.mdmp
ОПИСАНИЕ
winedbg - отладчик для Wine. Это позволяет:

+ отладка собственных приложений Win32

+ отладка приложений Winelib.
+ является заменой для доктора Уотсона


РЕЖИМЫ
winedbg можно использовать в пяти режимах. Первый аргумент программы определяет, в каком режиме будет работать winedbg.

по умолчанию
Без какого-либо явного режима это стандартный режим работы winedbg. winedbg будет выступать в качестве переднего конца для пользователя.
--gdb
winedbg будет использоваться в качестве прокси-сервера для gdb. gdb будет фронтом для обработки команд, а winedbg проксирует все запросы отладки от gdb до API Win32.
--авто
Этот режим используется, когда winedbg настроен в записи реестра AeDebug как отладчик по умолчанию. Затем winedbg отобразит основную информацию о сбое. Это полезно для пользователей, которые не хотят отлаживать сбой, а скорее собирают соответствующую информацию о сбое, который будет отправлен разработчикам.
--minidump
Этот режим похож на -auto one, за исключением того, что вместо того, чтобы печатать информацию на экране (как --auto), он сохраняется в файле minidump. Имя файла либо передается в командной строке, либо генерируется WineDbg, если не указано ни одного. Этот файл позже может быть перезагружен в winedbg для дальнейшего изучения.
file.mdmp
Этот режим позволяет перезагрузить в winedbg состояние debuggee, которое было сохранено в файле minidump. См. Ниже команду minidump или режим --minidump.


ОПЦИИ
В режиме по умолчанию доступны следующие параметры:

--command
winedbg выполнит команду , как если бы она была введена в командную строку winedbg, а затем выйдет. Это может быть полезно для получения pid запущенных процессов (winedbg --command «info proc»).
--file <имя_файла>
winedbg выполнит список команд, содержащихся в файле , как если бы они были введены в командную строку winedbg, а затем выйдет.

В режиме прокси-сервера gdb доступны следующие параметры:

--no-старт
gdb не будет автоматически запущен. Соответствующая информация для запуска gdb выводится на экран. Это полезно, когда напрямую не используется gdb, а некоторые графические интерфейсы, такие как ddd или kgbd.
--with-Xterm
Это приведет к запуску gdb в собственном xterm вместо использования текущей консоли Unix для текстового отображения.

Во всех режимах остальная часть командной строки, когда она передается, используется для определения того, какие программы, если они есть, должны отлаживаться:

название программы
Это имя исполняемого файла для начала сеанса отладки. winedbg фактически создаст процесс с помощью этого исполняемого файла. Если также указаны аргументы программ, они будут использоваться в качестве аргументов для создания процесса, который будет отлаживаться.
ПИД-регулятор
winedbg будет прикрепляться к процессу, который pid pid (pids относятся к файлам Win32, а не к пакетам Unix). Используйте команду info proc winedbg для перечисления запущенных процессов и их файлов Win32.
по умолчанию
Если ничего не указано, вы будете вводить отладчик без какого-либо запуска или присоединенного процесса. Тебе придется самому заниматься этой работой.


КОМАНДЫ

Режим по умолчанию и при перезагрузке файла minidump:

Большинство команд, используемых в winedbg, аналогичны командам из gdb. Дополнительную информацию см. В документах gdb. См. Раздел разницы gdb позже, чтобы получить список вариантов команд gdb.
Разный команды

выкинуть
Отменяет отладчик.
уволиться
Выход из отладчика.
прикрепить N
Прикрепите к вине-процессу (N - его идентификатор, числовой или шестнадцатеричный). Идентификаторы могут быть получены с помощью команды info process. Обратите внимание, что команда info-процесса возвращает шестнадцатеричные значения
отрывать
Отсоедините от винного процесса.

Команды справки

Помогите
Печатает некоторую помощь по командам.
справочная информация
Распечатывает некоторую помощь в информационных командах

Команды управления потоком

продолжение
Продолжайте выполнение до следующей точки останова или исключения.
проходить
Передайте событие исключения до цепочки фильтра.
шаг
Продолжить выполнение до следующей строки кода C (входит в вызов функции)
следующий
Продолжить выполнение до следующей строки кода C (не входит в вызов функции)
СТЕПИ
Выполните следующую инструкцию по сборке (введите вызов функции)
Nexti
Выполните следующую инструкцию по сборке (не входите в вызов функции)
Конец
Выполнить до достижения текущей функции.

cont, step, next, stepi, nexti могут быть добавлены числом (N), что означает, что команда должна быть выполнена N раз, пока элемент управления не будет возвращен пользователю.

Точки останова, точки наблюдения

включить N
Включает (break | watch) -point #N
запрещать
Отключает (break | watch) -point #N
Удалить
Удаляет (break | watch) -point #N
cond N
Удаляет любое существующее состояние (break | watch) -point N
cond N
Добавляет условие to (break | watch) -point #N. будет оцениваться каждый раз, когда поражается точка (break | watch). Если результатом является нулевое значение, точка останова не запускается.
break * N
Добавляет точку останова по адресу N
break
Добавляет точку останова по адресу символа
break N
Добавляет точку останова в строке N внутри символа .
перерыв N
Добавляет точку останова в строке N текущего исходного файла.
ломать
Добавляет точку останова на текущий адрес ПК.
смотреть * N
Добавляет команду watch (при записи) по адресу N (по 4 байта).
смотреть
Добавляет команду watch (при записи) по адресу символа . Размер зависит от размера .
информационный перерыв
Перечисляет все (break | watch) -точки (с их состоянием).

Вы можете использовать символ EntryPoint для обозначения точки входа в Dll.

При установке точки (break | watch) с помощью , если символ не может быть найден (например, символ содержится в еще не загруженном модуле), winedbg вызовет имя символа и попытается установить точка останова каждый раз, когда загружается новый модуль (пока он не завершится успешно).

Управление стеками

Б.Т.
Печать вызова стека текущего потока.
bt N
Выводить стек вызовов потока из идентификатора N. Примечание: это не изменяет положение текущего кадра при манипулировании командами up & dn).
вверх
Подходит к одному кадру в стеке текущего потока
до N
Восстанавливает N кадров в стеке текущего потока
дп
Переход вниз по одному кадру в стеке текущего потока
dn N
Спускает N кадров в стеке текущего потока
кадр N
Устанавливает N в качестве текущего кадра для стека текущего потока.
информация местные жители
Распечатывает информацию о локальных переменных для текущего фрейма функции.

Управление каталогом и исходными файлами
показать дир
Распечатывает список dir: s, где ищутся исходные файлы.
dir <путь>
Добавляет в список dir: s, где искать исходные файлы
реж
Удаляет список dir: s, где искать исходные файлы
symbolfile <путь>
Загружает внешний символ символа символа
symbolfile <путь> N
Загружает внешний символ символа символа (применяя смещение N к адресам)
список
Перечисляет 10 исходных строк вперед из текущего положения.
список -
Перечисляет 10 исходных строк назад из текущего положения
список N
Перечисляет 10 исходных строк из строки #N в текущем файле
list <путь>: N
Перечисляет 10 строк исходного кода из строки #N в файле <путь>
list
Перечисляет 10 исходных строк функции
список * N
Перечисляет 10 строк исходного кода из адреса N

Вы можете указать конечную цель (изменить значение 10 строк) с помощью разделителя ','. Например:


список 123, 234
перечисляет исходные строки из строки 123 до строки 234 в текущем файле
list foo.c: 1,56
перечисляет исходные строки из строки 1 до 56 в файл foo.c



Отображение

Дисплей - это выражение, которое оценивается и печатается после
выполнение любой команды winedbg.


дисплей
информационный дисплей
Список активных дисплеев
показать
Добавляет отображение для выражения expr>
display / fmt
Добавляет отображение для выражения . Печать выполнена
выполняется с использованием заданного формата (см. команду печати
для получения дополнительной информации о форматах)
del display N
unisplay N
Удаляет отображение #N



разборка


disas
Разберитесь с текущим положением
disas
Разберитесь с адресом
disas ,
Разбирает код между адресами, указанными двумя : s



Память (чтение, запись, ввод текста)


x
Изучает память в адресе
x / fmt
Изучает память по адресу , используя формат / fmt
print
Распечатывает значение (возможно, используя его тип)
print / fmt
Распечатывает значение (возможно, используя его тип)
set =
Записывает значение в переменной .
whatis
Распечатывает выражение типа C




/ FMT
либо / , либо / . <Письмо>
возможно:


s
строка ASCII
U
строка Unicode UTF16
я
инструкции (разобрать)
Икс
32-разрядное шестнадцатеричное целое число без знака
d
32-разрядное знаковое десятичное целое число
вес
16-разрядное шестнадцатеричное целое число без знака
с
символ (только для печати 0x20-0x7f)
б
8-битное беззнаковое шестнадцатеричное целое число
г
Win32 GUID
Выражения

Выражения в Wine Debugger в основном написаны в форме C. Однако,
есть несколько несоответствий:

Идентификаторы могут принимать значение «!» в их именах. Это позволяет в основном
укажите модуль, где можно посмотреть модуль: USER32! CreateWindowExA.

В режиме литья, когда вы указываете структуру или союз, вы должны
используйте ключевое слово struct или union (даже если ваша программа использует typedef).



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

Разный


minidump file.mdmp
сохраняет контекст отладки debuggee в файле minidump, называемом
file.mdmp



Информация о внутренних винах


информационный класс
Список всех классов Windows, зарегистрированных в Wine
info class
Распечатывает информацию о классе Windows
информация
Список всех динамических библиотек, загруженных в отладочную программу
(включая файлы .so, NE и PE DLL)
информация доля N
Распечатывает информацию о модуле по адресу N
info regs
Распечатывает значения регистров CPU
информация all-regs
Распечатывает значение регистров CPU и Floating Point
информационный сегмент
Перечисляет все выделенные сегменты (только i386)
информационный сегмент N
Распечатывает информацию о сегменте N (только i386)
информационный стек
Распечатывает значения поверх стека
информация карта
Перечисляет все виртуальные сопоставления, используемые отладочной программой
информация карта N
Перечисляет все виртуальные сопоставления, используемые программой pid N
информация wnd
Отображает иерархию окон, начиная с окна рабочего стола
информация wnd N
Распечатывает информацию о окне ручки N
информационный процесс
Перечисляет все w-процессы в сеансе Wine
Информационный поток
Список всех w-потоков в сеансе Wine
исключение информации
Перечисляет кадры исключений (начиная с текущего кадра стека)



Можно включить и отключить отладочные сообщения Wine, как вы
отладки с помощью команды set.


set + warn win
Включает предупреждение на канале «выиграть»
set + win
Включает предупреждение / fixme / err / trace на канале 'win'
set - win
Отключает предупреждение / fixme / err / trace на канале 'win'
set - fixme
Отключает класс «fixme» на всех каналах




Режим Gdb:

См. Документацию gdb для всех команд gdb.

Тем не менее, несколько расширений Wine доступны через команду монитора:

монитор wnd
Выводит список всех окон в сеансе Wine
контролировать proc
Перечисляет все процессы в сеансе Wine
монитор mem
Отображает отображение памяти отлаженного процесса


Авто и мини-пушки:

Поскольку пользовательский ввод невозможен, команды не доступны.


ОКРУЖАЮЩАЯ СРЕДА

WINE_GDB
При использовании в режиме прокси-сервера gdb WINE_GDB указывает имя (и путь) исполняемого файла, который будет использоваться для gdb. По умолчанию используется «gdb».


FILES
Нет конкретных файлов (пока).
ОШИБКИ
Много.
АВТОРЫ
Первая версия была написана Эриком Янгдейлом.

См. Список разработчиков Wine для остальных участников.
СМОТРИТЕ ТАКЖЕ
Файл README файла winedbg

Руководство пользователя Winelib
Руководство для разработчиков вин
Категория: (1) Прикладные программы и команды оболочки | Просмотров: 680 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar