Как установить gdb в Windows

Обновлено: 05.07.2024

GDB поставляется с конфигурационным сценарием, который автоматизирует процесс подготовки GDB к установке; затем вы можете использовать make для сборки программы gdb. (8)

Распространение GDB включает весь исходный код, необходимый для GDB, в одном каталоге, имя которого обычно состоит из добавления номера версии к `gdb' .

Например, дистрибутив GDB версии 5.1.1 находится в каталоге `gdb-5.1.1'. Этот каталог содержит: gdb-5.1.1/configure (и вспомогательные файлы) сценарий для настройки GDB и всех его вспомогательных библиотек gdb-5.1.1/gdb исходный код, специфичный для самого GDB gdb-5.1.1/bfd исходный код для двоичного файла Библиотека дескрипторов gdb-5.1.1/include Включаемые файлы GNU gdb-5.1.1/libiberty исходный код библиотеки свободного программного обеспечения `-liberty' gdb-5.1.1/opcodes исходный код библиотеки таблиц кодов операций и дизассемблеров gdb-5.1.1 /readline исходный код для интерфейса командной строки GNU gdb-5.1.1/glob исходный код подпрограммы сопоставления имен файлов с шаблоном GNU gdb-5.1.1/mmalloc исходный код для отображаемого в память пакета GNU malloc

Самый простой способ настроить и собрать GDB — запустить configure из исходного каталога `gdb-номер_версии', которым в данном примере является каталог `gdb-5.1.1'.

Сначала переключитесь в исходный каталог `gdb-номер_версии', если вы еще не в нем; затем запустите настроить. В качестве аргумента передайте идентификатор платформы, на которой будет работать GDB.

где хост — это идентификатор, такой как `sun4' или `decstation', который идентифицирует платформу, на которой будет работать GDB. (Часто можно обойтись без host ; configure пытается угадать правильное значение, исследуя вашу систему.)

Запуск `configure host', а затем запуск make собирает библиотеки `bfd', `readline', `mmalloc' и `libiberty', а затем сам gdb. Настроенные исходные файлы и двоичные файлы остаются в соответствующих исходных каталогах.

configure — это сценарий Bourne-shell ( /bin/sh ); если ваша система не распознает это автоматически, когда вы запускаете другую оболочку, вам может потребоваться явно запустить на ней sh:

Если вы запускаете configure из каталога, который содержит исходные каталоги для нескольких библиотек или программ, например исходный каталог `gdb-5.1.1' для версии 5.1.1, configure создает файлы конфигурации для каждого уровня каталога ниже (если только вы не запретите это с помощью опции `--norecursion').

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

Например, в версии 5.1.1 введите следующее, чтобы настроить только подкаталог bfd:

<УЛ>
  • Отдельный Objdir: компиляция GDB в другом каталоге
  • Имена конфигураций: указание имен для хостов и целей
  • Параметры настройки: сводка параметров настройки
  • Если вы хотите запускать версии GDB для нескольких хост-машин или целевых машин, вам потребуется отдельный gdb, скомпилированный для каждой комбинации хоста и цели. configure предназначен для упрощения этой задачи, позволяя вам генерировать каждую конфигурацию в отдельном подкаталоге, а не в исходном каталоге. Если ваша программа make обрабатывает функцию `VPATH' (GNU make делает это), запуск make в каждом из этих каталогов создает указанную там программу gdb.

    Чтобы собрать gdb в отдельном каталоге, запустите configure с параметром `--srcdir', чтобы указать, где найти исходный код. (Вам также необходимо указать путь, чтобы найти файл configure из вашего рабочего каталога. Если путь для настройки будет таким же, как аргумент для `--srcdir', вы можете не указывать параметр `--srcdir'; предполагается.)

    Например, в версии 5.1.1 вы можете собрать GDB в отдельном каталоге для Sun 4 следующим образом:

    Когда configure создает конфигурацию с использованием удаленного исходного каталога, он создает дерево для двоичных файлов с той же структурой (и с теми же именами), что и дерево в исходном каталоге. В этом примере вы найдете библиотеку Sun 4 `libiberty.a' в каталоге `gdb-sun4/libiberty', а сам GDB — в `gdb-sun4/gdb'.

    Одной из популярных причин создания нескольких конфигураций GDB в отдельных каталогах является настройка GDB для кросс-компиляции (где GDB запускается на одной машине — хосте — при отладке программ, которые выполняются на другой машине — цели). Вы указываете цель кросс-отладки, указав параметр `--target= target ' для настройки.

    Когда вы запускаете make для сборки программы или библиотеки, вы должны запускать ее в сконфигурированном каталоге — в любом каталоге, в котором вы находились, когда вызывали configure (или в одном из его подкаталогов).

    Файл Makefile, создаваемый configure в каждом исходном каталоге, также выполняется рекурсивно. Если вы введете make в исходном каталоге, таком как `gdb-5.1.1' (или в отдельно настроенном каталоге, сконфигурированном с помощью `--srcdir= dirname /gdb-5.1.1'), вы соберете все необходимые библиотеки и затем соберите GDB.

    Если у вас есть несколько хостов или целей, настроенных в разных каталогах, вы можете запускать make на них параллельно (например, если они смонтированы по NFS на каждом из хостов); они не будут мешать друг другу.

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

    Например, вы можете использовать псевдоним sun4 в качестве аргумента хоста или в качестве значения для цели в параметре --target= target. Эквивалентное полное имя: `sparc-sun-sunos4' .

    Сценарий configure, прилагаемый к GDB, не предоставляет каких-либо средств запроса для перечисления всех поддерживаемых хостов и целевых имен или псевдонимов. configure вызывает сценарий оболочки Bourne config.sub для сопоставления аббревиатур с полными именами; вы можете прочитать сценарий, если хотите, или вы можете использовать его, чтобы проверить свои предположения относительно аббревиатур, например:

    config.sub также распространяется в исходном каталоге GDB (`gdb-5.1.1' для версии 5.1.1).

    Вот краткий обзор опций и аргументов конфигурации, которые чаще всего используются при построении GDB. configure также имеет несколько других опций, не перечисленных здесь. См. информационный файл `configure.info', узел `Что делает Configure', для полного объяснения configure .

    Вы можете вводить параметры с помощью одного `-' вместо `--', если хотите; но вы можете сокращать имена опций, если используете `--'. --help Показать краткую информацию о том, как вызвать configure . --prefix= dir Настроить источник для установки программ и файлов в каталоге `dir'. --exec-prefix= dir Сконфигурируйте источник для установки программ в каталоге `dir'. --srcdir= имя_каталога Предупреждение: для использования этой опции требуется GNU make или другая make, реализующая функцию VPATH.
    Используйте эту опцию, чтобы сделать конфигурации в каталогах отдельно от исходных каталогов GDB. Среди прочего, вы можете использовать это для создания (или поддержки) нескольких конфигураций одновременно в отдельных каталогах. configure записывает определенные файлы конфигурации в текущий каталог, но организует для них использование источника в каталоге имя_каталога. configure создает каталоги в рабочем каталоге параллельно с исходными каталогами ниже dirname . --norecursion Настроить только уровень каталога, на котором выполняется configure; не распространяйте конфигурацию на подкаталоги. --target= цель Сконфигурировать GDB для перекрестной отладки программ, работающих на указанной цели. Без этой опции GDB настроен на отладку программ, работающих на той же машине (хосте), что и сам GDB. Нет удобного способа создать список всех доступных целей. хозяин . Настройте GDB для работы на указанном хосте. Нет удобного способа создать список всех доступных хостов.

    Также доступно много других опций, но они обычно нужны только для особых целей.

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

    Способ 1: использование pipx (рекомендуется)

    gdbgui рекомендует использовать pipx, программу для запуска двоичных файлов Python CLI в изолированных средах.

    Вы можете установить Pipx следующим образом:

    Перезапустите/перезагрузите консоль, чтобы убедиться, что путь пользователя актуален.

    Затем установите gdbgui с помощью pipx:

    По завершении установки введите gdbgui в командной строке, чтобы запустить ее, или gdbgui -h для получения справки.

    Чтобы удалить, запустите

    Попробуйте без установки

    С помощью pipx вы можете запускать программы Python CLI в эфемерных одноразовых виртуальных средах.

    В вашем браузере откроется новая вкладка с последней версией gdbgui. Нажмите CTRL+C, чтобы завершить процесс, и ваша система останется нетронутой.

    Способ 2: использование pip

    pip — популярный установщик пакетов Python. gdbgui — это пакет Python, и поэтому его можно установить с помощью pip, хотя мы рекомендуем использовать pipx, а не pip, если это возможно.

    Если вы предпочитаете использовать виртуальные среды, вы можете активировать их, а затем запустить

    Вы можете получать обновления с помощью

    Чтобы удалить, запустите

    Способ 3. Загрузите и запустите двоичный исполняемый файл

    Загрузите и запустите двоичный исполняемый файл для вашей системы с GitHub Releases.

    Системные зависимости для пакета Python

    Обратите внимание, что это применимо только в том случае, если вы устанавливаете пакет Python, а не используете двоичный исполняемый файл.

    • gdb (отладчик gnu)
    • Python 3.4+ (рекомендуется) или 2.7
    • версия 8 или выше

    Зависимости Linux

    зависимости macOS

    Пользователи macOS также должны кодировать gdb: следуйте этим инструкциям. Это устранит ошибку. Пожалуйста, проверьте код gdb - см. Taskgated(8) .

    Зависимости Windows

    Обратите внимание, что Windows поддерживается только для версий gdbgui ниже 0.14.

    Если у вас еще не установлены gdb/make/gcc, есть два варианта их установки в Windows: MinGW и cygwin .

    MinGW (рекомендуется)

    Минимальный GNU для Windows ( MinGW ) является рекомендуемым вариантом Windows. Установите MinGW с пакетом «Базовая система MinGW». Это пакет по умолчанию, который содержит make , gcc и gdb .

    Он будет установлен где-то вроде C:\MinGW\bin\. . Например, C:\MinGW\bin\gdb.exe , C:\MinGW\bin\mingw32-make.exe и т. д.

    Убедитесь, что этот двоичный каталог MinGW (например, C:\MinGW\bin\ ) находится в вашей переменной среды «Путь». Перейдите в «Панель управления» > «Свойства системы» > «Переменные среды» > «Системные переменные» > «Путь» и убедитесь, что C:\MinGW\ bin\ добавляется в этот список. Если он не добавлен в ваш «Путь», вам придется запустить gdbgui с явно заданным путем, например, gdbgui -g C:\MinGW\bin\gdb.exe .

    Cygwin

    Cygwin — это более UNIX-подобный уровень совместимости в Windows, и gdbgui также работает с ним.

    Запуск GDB В командной консоли Windows введите arm-none-eabi-gdb и нажмите Enter. Вы можете сделать это из любого каталога. Если вы не знаете, как открыть командную консоль Windows, см. Запуск OpenOCD в Windows. Вы также можете запустить GDB непосредственно из меню «Выполнить» в меню «Пуск».

    Как настроить GDB?

    Следуйте указанным ниже шагам, чтобы скомпилировать GDB с нуля и установить его.

    Как получить GDB EXE?

    2 ответа. Действия по добавлению gdb.exe Откройте диспетчер установки MinGW, выберите пакет «mingw32-gdb» из списка. Затем выберите «Применить изменения» в меню «Установка». Это автоматически установит gdb.exe по пути C:\MinGW\bin.

    GDB только для C?

    Выражения C++ Предупреждение: GDB может отлаживать код C++, только если вы используете правильный компилятор. Как правило, отладка C++ зависит от использования дополнительной отладочной информации в таблице символов и поэтому требует специальной поддержки. В частности, если ваш компилятор генерирует a.

    На чем написан GDB?

    Как работает отладчик GDB?

    Gdb — это отладчик для C (и C++). Это позволяет вам делать такие вещи, как запуск программы до определенной точки, затем останавливаться и распечатывать значения определенных переменных в этой точке, или выполнять программу по одной строке за раз и распечатывать значения каждой переменной после выполнения каждой. линия.

    Кто изобрел GDB?

    Что означает GNU?

    Что такое GDB в информатике?

    GDB означает GNU Project Debugger и является мощным инструментом отладки для C (наряду с другими языками, такими как C++). Это поможет вам копаться внутри ваших программ C во время их выполнения, а также позволяет вам увидеть, что именно происходит, когда ваша программа дает сбой. Перейдите в командную строку Linux и введите «gdb».

    Как остановить GDB после продолжения?

    Чтобы остановить программу во время ее работы, введите «(ctrl) + c» (удерживая нажатой клавишу Ctrl, нажмите c). gdb остановит вашу программу на любой строке, которую она только что выполнила. Отсюда вы можете просматривать переменные и перемещаться по вашей программе. Чтобы указать другие места, где gdb должен останавливаться, см. раздел о точках останова ниже.

    Что значит убить?

    переходный глагол. 1а: лишить жизни: вызвать смерть от болезни, которая убила тысячи. Он угрожал убить их. b(1) : зарезать (животное) для еды. (2) : превратить пищевое животное в (разновидность мяса) путем забоя.

    Как удалить точку останова в GDB?

    Удаление точек останова С помощью команды clear вы можете удалять точки останова в зависимости от того, где они находятся в вашей программе. С помощью команды удаления вы можете удалить отдельные точки останова, точки наблюдения или точки перехвата, указав их номера точек останова. Нет необходимости удалять точку останова, чтобы пройти мимо нее.

    Какая команда выводит список всех точек останова?

    Что такое временная точка останова?

    Временная точка останова — это точка останова, которая автоматически удаляется при обнаружении на пути выполнения. Таким образом, мы остановимся здесь, но только один раз; после этого точка останова исчезнет.

    Что такое точка останова в GDB?

    Точка останова останавливает вашу программу всякий раз, когда достигается определенная точка в программе. Для каждой точки останова вы можете добавить условия для более точного контроля остановки вашей программы. Вы можете организовать автоматическое отображение значений из вашей программы всякий раз, когда GDB останавливается в точке останова.

    В чем разница между Step и Next в GDB?

    Разница между «следующий» и «шаг» заключается в том, что «шаг» останавливается внутри вызываемой функции, тогда как «следующий» выполняет вызываемые функции на (почти) полной скорости, останавливаясь только на следующей строке в текущей функции.< /p>

    Как работают команды GDB step и next?

    Если строка, которая должна быть выполнена, является вызовом функции, gdb войдет в эту функцию и начнет выполнять свой код по одной строке за раз. Если вы хотите выполнить всю функцию одним нажатием клавиши, введите «далее» или «n».Это эквивалентно команде «перешагнуть» большинства отладчиков.

    GDB, отладчик проектов GNU — это инструмент отладки, входящий в состав коллекции компиляторов GNU (GCC). GDB позволяет вам останавливать и запускать работающую программу, проверять ее работу и вносить изменения.

    Содержание

    Сценарий configure, поставляемый с OpenOCD 0.5.0, уже компилирует OpenOCD для поддержки отладчика GDB. Если вы установили OpenOCD в соответствии с инструкциями на странице Компиляция OpenOCD, ваша версия OpenOCD уже поддерживает GDB.

    Флаг -g сообщает компилятору gcc о сборке с поддержкой GDB. Скрипт конфигурации OpenOCD уже включает флаг -g.

    Вам потребуется загрузить или скомпилировать версию GDB, которая поддерживает встроенные устройства. Одна такая сборка GDB предоставляется с набором инструментов CodeSourcery ARM.

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

    Sourcery-install win.jpg

    Установщик устанавливает цепочку инструментов CodeSourcery по умолчанию в папку C:\Program Files\CodeSourcery\Sourcery G++ Lite (или C:\Program Files (x86)\CodeSourcery\Sourcery G++ Lite в 64-разрядной версии Windows). Он также добавляет этот путь к вашей системной переменной PATH, чтобы вы могли запускать arm-none-eabi-gdb и другие инструменты из любого каталога.

    В командной консоли Windows введите arm-none-eabi-gdb и нажмите Enter. Вы можете сделать это из любого каталога. Если вы не знаете, как открыть командную консоль Windows, см. Запуск OpenOCD в Windows. Вы также можете запустить GDB непосредственно из меню "Выполнить" в меню "Пуск".

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

    Eabi-gdb startup win.jpg

    Запустите OpenOCD как обычно, как описано в разделе Запуск OpenOCD в Windows. Чтобы подключиться к OpenOCD, запустите GDB, как указано выше:

    OpenOCD прослушивает соединения GDB через порт 3333. В GDB подключитесь к OpenOCD, введя target remote localhost:3333. (В этом руководстве, если вы видите (gdb) в начале команды, это означает, что введите эту строку в командную строку GDB. На самом деле не вводите символы (gdb).)

    Прежде чем делать что-либо еще, запустите reset init на цели. Используйте команду monitor, чтобы указать GDB отправить команду в OpenOCD, например:

    Сброс монитора init win.jpg

    Это важно. Вам нужно сделать это, когда GDB подключен к OpenOCD, иначе вы не сможете остановить или сбросить цель. Если вы не запустите monitor reset init, вы столкнетесь с такими ошибками:

    Gdb package err win.jpg

    Отправка команд в OpenOCD

    Вы можете отправлять команды в OpenOCD через GDB точно так же, как через telnet-соединение. Введите monitor, затем команду и введите. Вы можете увидеть список общих команд OpenOCD здесь.

    Команды Gdb openocd win.jpg

    Вы можете использовать команду Linux cd для изменения текущего рабочего каталога в GDB. Это изменяет текущий каталог только для GDB, но не для Linux; когда вы выйдете из GDB, вы вернетесь в каталог, откуда начали.

    Чтобы выйти из GDB, введите quit

    .gdbinit

    Вместо того, чтобы самостоятельно вводить команды каждый раз при запуске GDB, вы можете создать сценарий, чтобы всегда запускать GDB с одним и тем же набором команд. Этот файл сценария называется .gdbinit. GDB ищет его в текущем рабочем каталоге.

    Вы можете использовать приведенный ниже сценарий, чтобы GDB автоматически подключался к OpenOCD и запускал reset init на цели. Создайте новую папку на диске C:\ с именем GDB_OpenOCD_init и создайте в ней новый текстовый файл. Скопируйте приведенный ниже код в файл:

    Сохраните файл как .gdbinit и закройте его. Обратите внимание, что в проводнике Windows вы не можете дать файлу имя, начинающееся с точки. Вам нужно будет сохранить его под именем .gdbinit в текстовом редакторе. Либо назовите файл gdbinit без точки, а затем переименуйте его из командной строки:

    Чтобы протестировать сценарий инициализации, запустите OpenOCD как обычно. Затем в командной строке перейдите к C:\GDB_OpenOCD_init и запустите CodeSourcery GDB.

    Вы должны увидеть что-то вроде изображения ниже. (На этом изображении целевым устройством является Beagleboard.На другом оборудовании вывод reset init будет другим.)

    Читайте также: