Налагодження за допомогою GDB - Вхід та вихід з GDB
Цей розділ присвячений тому, як запустити GDB і як з нього вийти. Основні принципи:
- введіть `gdb' для виклику GDB.
- введіть quit або Cd для виходу з нього.
Викликайте GDB шляхом запуску gdb . Розпочавши роботу, GDB зчитує команди з терміналу, поки ви не скажете йому вийти.
Ви також можете запустити gdb з різними аргументами та ключами, щоб на початку краще налаштувати середовище налагодження.
Ключі командного рядка, описані тут, призначені для охоплення різноманітних ситуацій; в дейтсвительности, у деяких середовищах частина цих ключів може бути недоступна.
Найчастіше GDB викликається з одним аргументом, який визначає програму, що виконується:
Ви також можете вказати при старті як програму, що виконується, так і файл дампа пам'яті:
Якщо ви хочете налагодити процес, що виконується в даний момент, то замість цього, ви можете вказати другим аргументом ідентифікатор цього процесу:
приєднає GDB до процесу 1234 (якщо, звичайно, у вас немає файлу з ім'ям `1234', GDB спочатку перевіряє наявність файлу дампа пам'яті).
Переваги, які можна отримати при використанні другого аргументу командного рядка, потребують достатньо досконалої операційної системи; якщо ви використовуєте GDB як віддалений наладчик, приєднаний до комп'ютера без операційної системи, там взагалі може не бути поняття "процесу", і часто немає способу отримати дамп. GDB попередить вас, якщо йому не вдається приєднатися до процесу або рахувати файл дампа пам'яті.
Ви можете запустити gdb без виведення початкового повідомлення, яке описує відсутність гарантії на нього, вказавши -silent :
Крім того, ви можете контролювати процес запуску GDB за допомогою ключів командного рядка. GDB можесам нагадати вам про доступні ключі.
щоб вивести на екран усі доступні опції з коротким описом їх використання (скорочений еквівалент --gdb -h ).
Усі задані ключі та параметри командного рядка обробляються послідовно. Порядок стає важливим при використанні ключа `-x'.
При запуску, GDB зчитує параметри, відмінні від ключів, як покажчики на виконувану програму та файл дампа (або ідентифікатор процесу), так само, як якщо ці параметри задавалися ключами `-se' та `-c' відповідно. (GDB вважає перший параметр, що не має відповідного прапора ключа, еквівалентом ключа `-se' , за яким слідує цей параметр; а другий параметр, що не має відповідного прапора ключа, якщо він є, еквівалентом ключа `-c' , за яким слідує цей параметр параметр.)
Якщо GDB був налаштований без включення підтримки файлів дампа, що має місце для більшості вбудованих цілей, він висловить невдоволення другим аргументом і проігнорує його.
Ключі -mapped і -readnow зазвичай використовуються разом, щоб побудувати файл `.syms', який містить повну інформацію про символи. (See section Команди для завдання файлів, для інформації про файли `.syms'.) Ось простий виклик GDB, який не робить нічого, крім побудови файлу `.syms' для використання в майбутньому:
quit [ вираз ] q Щоб вийти з GDB, використовуйте команду quit (скорочено q ), або введіть знак кінця файлу (зазвичай C-d ). Якщо ви не вкажете вираз, GDB закінчить роботу нормально; в іншому випадку він використовує результат виразу як код помилки.
Переривання (часто C-c) не призводить до виходу з GDB, а завершує будь-яку команду, що виконується, і повертає вас на командний рівень. Ви можете безпечно користуватися перериванням у будь-який час, томущо GDB не дозволяє йому набути чинності до того, як це стане безпечним.
Якщо ви використовували GDB для керування приєднаним процесом або пристроєм, ви можете звільнити його командою detach (see section Налагодження запущеного раніше процесу).
Якщо вам потрібно було виконати команди оболонки протягом сеансу налагодження, немає сенсу припиняти або залишати GDB; вам достатньо скористатися командою shell. shell командний рядок Викликати стандартну оболонку для виконання командного рядка . Змінна оточення SHELL якщо вона існує, визначає, яку оболонку запустити. В іншому випадку, GDB використовує стандартну оболонку (`/bin/sh' в системах Unix, `COMMAND.COM' в MS-DOS, і так далі).
У середовищах розробки часто буває необхідно скористатися утилітою make. Для цієї мети вам не обов'язково користуватися командою shell у GDB: make make-арг Виконати програму make із зазначеними аргументами. Це еквівалентно `shell make make-арг`.