GDB и примеры команды LLDB
Таблицы в этой главе приводят обычно используемые команды GDB и представляют эквивалентные команды LLDB и альтернативные формы. Также перечисленный встроенные псевдонимы совместимости GDB в LLDB.
Заметьте, что полные названия команды LLDB могут быть соответствующими уникальными краткими формами, которые могут использоваться вместо этого. Например, вместо breakpoint set
, br se
может использоваться.
Команды выполнения
GDB | LLDB |
---|---|
Запустите процесс без параметров. | |
|
|
Запустите процесс с параметрами | |
|
|
Процесс запуска | |
|
|
Запустите процесс с параметрами в новом окне терминала (только OS X). | |
— |
|
Запустите процесс с параметрами в существующем Окне терминала, | |
— |
|
Установите переменные окружения для процесса перед запуском. | |
|
|
Установите переменные окружения для процесса и процесса запуска в одной команде. | |
|
|
Присоедините к процессу с ID 123 процесса. | |
|
|
Присоедините к названному процессу | |
|
|
Ожидайте названного процесса | |
|
|
Присоедините к удаленному серверу протокола GDB, работающему на системе | |
|
|
Присоедините к удаленному серверу протокола GDB, работающему на локальной системе, порт 8000. | |
|
|
Присоедините к Дарвинскому ядру в kdp режиме в системе | |
|
|
Сделайте исходный уровень единственный шаг в в настоящее время выбираемом потоке. | |
|
|
Сделайте исходный уровень единственный шаг в в настоящее время выбираемом потоке. | |
|
|
Сделайте уровень инструкции единственный шаг в в настоящее время выбираемом потоке. | |
|
|
Сделайте уровень инструкции единственный шаг в в настоящее время выбираемом потоке. | |
|
|
Шаг из в настоящее время выбранного кадра. | |
|
|
След и демонтирует каждый раз, когда Вы останавливаетесь. | |
— |
|
Команды точки останова
GDB | LLDB |
---|---|
Установите точку останова во всех названных функциях | |
|
|
Установите точку останова в файле | |
|
|
Установите точку останова во всех методах C++, базовое имя которых | |
(Примечание: Это повредится на любых названных функциях C |
|
Установите точку останова в функции Objective C: | |
|
|
Установите точку останова во всех методах Objective C, селектор которых | |
(Примечание: Это повредится на любом C или названных функциях C++ |
|
Установите точку останова регулярным выражением на имени функции. | |
|
|
Установите точку останова регулярным выражением на содержании исходного файла. | |
|
|
Перечислите все точки останова. | |
|
|
Удалите точку останова. | |
|
|
Команды контрольной точки
GDB | LLDB |
---|---|
Установите контрольную точку на переменной, когда это будет записано в. | |
|
|
Установите контрольную точку на ячейке памяти, когда это будет записано в. | |
|
Примечание: Размер области для наблюдения за значениями по умолчанию к размеру указателя, если нет |
Установите условие на контрольной точке. | |
— |
|
Перечислите все контрольные точки. | |
|
|
Удалите контрольную точку. | |
|
|
Исследование переменных
GDB | LLDB |
---|---|
Покажите параметры и локальные переменные для текущего кадра. | |
и
|
|
Покажите локальные переменные для текущего кадра. | |
|
|
Покажите содержание локальной переменной | |
|
|
Покажите содержание локальной переменной | |
|
|
Покажите содержание глобальной переменной | |
|
|
Покажите глобальную переменную/статические переменные, определенную в текущем исходном файле. | |
— |
|
Выведите на экран переменные | |
|
|
Выведите на экран переменные | |
—
|
|
Выведите на экран переменную | |
—
|
|
Оценка выражений
GDB | LLDB |
---|---|
Оцените обобщенное выражение в текущем кадре. | |
Или если Вы не хотите видеть недействительные возвраты:
|
Или используйте
|
Создайте и присвойте значение переменной удобства. | |
Или используйте
Или используйте
Указать тип переменной:
| LLDB оценивает выражение объявления переменной, поскольку Вы записали бы его в C:
|
Распечатайте Objective C | |
|
Или используйте
|
Распечатайте динамический тип результата выражения. | |
Примечание: Только для объектов C++. |
Или набор динамический тип, распечатывающий как значение по умолчанию:
|
Вызовите функцию для остановки в точке останова в функции. | |
|
|
Исследование состояния потока
GDB | LLDB |
---|---|
Покажите след штабеля для текущего потока. | |
|
|
Покажите следы штабеля для всех потоков. | |
|
|
След первые пять кадров текущего потока. | |
|
|
Выберите различный стековый фрейм индексом для текущего потока. | |
|
|
Информация о списке о в настоящее время выбранном кадре в текущем потоке. | |
— |
|
Выберите стековый фрейм который названный текущим стековым фреймом. | |
|
|
Выберите стековый фрейм, который вызывает текущий стековый фрейм. | |
|
|
Выберите различный стековый фрейм с помощью относительного смещения. | |
|
|
Покажите регистры общего назначения для текущего потока. | |
|
|
Запишите новое десятичное значение | |
|
|
Пропустите 8 байтов перед текущим счетчиком команд (указатель команд). | |
|
Команда LLDB использует обратные галочки, чтобы оценить выражение и вставить скалярный результат. |
Покажите регистры общего назначения для текущего потока, отформатированного как подписанное десятичное число. | |
— |
LLDB теперь поддерживает краткий синтаксис формата GDB, но никакое пространство не разрешено после команды:
Примечание: LLDB пытается использовать те же символы формата как |
Покажите все регистры во всех наборах регистров для текущего потока. | |
|
|
Покажите значения для названных регистров | |
|
|
Покажите значения для названного регистра | |
|
LLDB теперь поддерживает краткий синтаксис формата GDB, но никакое пространство не разрешено после команды:
|
Считайте память из адреса | |
|
LLDB теперь поддерживает краткий синтаксис формата GDB, но никакое пространство не разрешено после команды:
|
Считайте память, запускающуюся в выражении | |
|
Обратите внимание на то, что любая команда может встроить скалярный результат выражения (как долго, поскольку цель останавливается), использование обратных галочек вокруг любого выражения:
|
Считайте 512 байтов памяти от адреса | |
|
|
Сохраните двоичные данные памяти к файлу, запускающемуся в | |
|
|
Демонтируйте текущую функцию для текущего кадра. | |
|
|
Демонтируйте любые названные функции | |
|
|
Демонтируйте диапазон адресов. | |
|
|
Демонтируйте 20 инструкций от данного адреса. | |
|
|
Покажите смешанный источник и дизассемблирование для текущей функции для текущего кадра. | |
— |
|
Демонтируйте текущую функцию для текущего кадра и покажите байты кода операции. | |
— |
|
Демонтируйте текущую исходную строку для текущего кадра. | |
— |
|
Исполнимая программа и совместно используемые команды запроса библиотеки
GDB | LLDB |
---|---|
Перечислите основную исполнимую программу, и весь зависимый совместно использовал библиотеки. | |
|
|
Ищите информацию для необработанного адреса в исполнимой программе или любых совместно используемых библиотек. | |
|
|
Ищите функции, соответствующие регулярное выражение в двоичном файле. | |
| Этот находит отладочные символы:
Этот находит неотладочные символы:
Обеспечьте список двоичных файлов как параметры для ограничения поиска. |
Ищите информацию для адреса в | |
— |
|
Ищите информацию для типа | |
|
|
Выведите все разделы от основной исполнимой программы и любых совместно используемых библиотек. | |
|
|
Выведите все разделы в | |
— |
|
Выведите все символы от основной исполнимой программы и любых совместно используемых библиотек. | |
— |
|
Выведите все символы в | |
— |
|
Прочие условия
GDB | LLDB |
---|---|
Текст эха на экран. | |
|
|
Повторно отобразите пути исходного файла для сеанса отладки. | |
|
Примечание: Если Ваши исходные файлы больше не располагаются в том же расположении как тогда, когда программа была создана — возможно, программа была основана на различном компьютере — необходимо сказать отладчик, как найти источники в локальном пути к файлу вместо пути к файлу системы сборки. |
Предоставьте всеобъемлющий каталог для поиска исходных файлов в. | |
| (Никакая эквивалентная команда все же.) |