Налагодження за допомогою gdb - установка gdb

GDB поставляється разом зі сценарієм configure. який автоматизує процес підготовки GDB до установки; потім ви можете використовувати make для побудови програми gdb. (20)

Дистрибутив GDB включає весь вихідний код, який вам знадобиться для GDB, в одному каталозі, ім'я якого зазвичай складається додаванням номера версії до `gdb '.

Наприклад, дистрибутив GDB версії 5.0 знаходиться в каталозі `gdb-5.0 '. Цей каталог містить: gdb-5.0 / configure (і файли підтримки) сценарій для конфігурації GDB і всіх підтримуваних бібліотек gdb-5.0 / gdb вихідні тексти, специфічні для самого GDB gdb-5.0 / bfd вихідні тексти для бібліотеки опису довічних файлів (Binary File Descriptor ) gdb-5.0 / include файли, що включаються GNU gdb-5.0 / libiberty вихідні тексти для `-liberty 'бібліотеки вільного програмного забезпечення gdb-5.0 / opcodes вихідні тексти бібліотеки таблиць кодів операцій і дисассемблер gdb-5.0 / readline вихідні тексти інтерфейсу командного рядка GNU gdb -5.0 / glob вихідні тексти підпрограми GNU зіставлення з обр азцом імені файлу gdb-5.0 / mmalloc вихідні тексти пакета GNU для виділення пам'яті

Найпростіший спосіб налаштувати і зібрати GDB полягає у виконанні configure з вихідного каталогу `gdb- номер-версії '. який в цьому прикладі є `gdb-5.0 '.

Спершу перейдіть в вихідний каталог `gdb- номер-версії '. якщо ви ще не перебуваєте в ньому; потім запустіть configure. Передайте в якості аргументу ідентифікатор платформи, на якій буде виконуватися GDB.

де платформа --- ідентифікатор, такий як `sun4 'або` decstation'. задає платформу, на якій буде виконуватися GDB. (Часто ви можете опустити платформу; configure намагається визначити коректне значення, вивчаючи вашу систему.)

Виконання `configure платформа 'і потім make будують бібліотеки` bfd'. `Readline '. `Mmalloc 'і` libiberty'. і потім сам gdb. Сконфігуровані вихідні файли, а також виконавчі файли, залишаються у відповідних вихідних каталогах.

configure є сценарієм оболонки Bourne (/ bin / sh); якщо ваша система не розпізнає це автоматично, коли ви перебуваєте в іншій оболонці, вам може знадобитися виконати sh явно:

Якщо ви виконаєте configure з каталогу, що містить вихідні каталоги для декількох бібліотек або програм, наприклад `gdb-5.0 'для версії 5.0, configure створює файли конфігурації для всіх підкаталогів нижчого рівня (якщо ви не кажіть йому не цього робити ключем` --norecursion' ).

Ви можете виконати сценарій configure з будь-якого підкаталогу з поставки GDB, якщо ви хочете конфігурувати тільки цей підкаталог, але переконайтеся, що вказали шлях до нього.

Наприклад, для версії 5.0, щоб конфігурувати тільки підкаталог bfd. введіть:

Ви можете встановити gdb куди завгодно; він не має ніяких жорстко заданих шляхів. Однак, ви повинні упевнитися, що ваша оболонка (визначається змінного середовища `SHELL ') доступна всім для читання. Пам'ятайте, що GDB використовує оболонку для запуску вашої програми --- деякі системи не дозволяють GDB налагоджувати дочірні процеси, чиї програми недоступні для читання.

Якщо ви хочете запускати версії GDB на декількох робочих або цільових машинах, вам потрібні різні gdb. скомпільовані для кожної комбінації робочої і цільової машини. configure розроблений так, щоб полегшити це, дозволяючи вам створювати кожну конфігурацію в окремому підкаталозі, а не у вихідному каталозі. Якщо ваша програма make підтримує можливості `VPATH '(GNU make це робить), виклик make в кожному з цих каталогів будує програму gdb. певну там.

Щоб побудувати gdb в окремому каталозі, запустіть configure з ключем `--srcdir '. для визначення, де шукати джерело. (Вам також потрібно визначити шлях для пошуку configure з вашого робочого каталогу. Якщо шлях до configure збігається з параметром `--srcdir '. Ключ` --srcdir' можна опустити; він мається на увазі.)

Наприклад, у версії 5.0, ви можете побудувати GDB в окремому каталозі для Sun 4 так:

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

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

Коли ви виконуєте make для побудови програми або бібліотеки, ви повинні виконувати її з сконфигурированного каталогу --- того каталогу, з якого ви викликали configure (або з одного з його підкаталогів).

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

Коли у вас є кілька робочих або цільових конфігурацій в окремих каталогах, ви можете запустити make для них паралельно (наприклад, якщо вони змонтовані по NFS на кожній робочій машині); вони не будуть конфліктувати один з одним.

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

Наприклад, ви можете використовувати синонім sun4 як параметр платформа. або як значення мета в ключі --target = мета. Еквівалентну повне ім'я --- `sparc-sun-sunos4 '.

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

config.sub також поширюється в вихідному каталозі GDB ( `gdb-5.0 '. для версії 5.0).

Тут наводиться огляд ключів і параметрів configure. які найбільш часто використовуються для побудови GDB. configure також має кілька альтернативних джерел, не представлених тут. See Info file `configure.info ', node` What Configure Does', для повного пояснення configure.

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

Існує також багато інших ключів, але зазвичай вони потрібні тільки для спеціальних цілей.

Схожі статті