Отстраняване на грешки с GDB

Тази глава описва как да започнете GDB, и как да се измъкнем от него. Основни принципи:
  • въведете `GDB" да започне GDB.
  • влиза откажат или С-г за излизане от него.

Обадете GDB GDB от изпълнението на програмата. След като го стартирате, GDB приема команди от терминала, стига да не му кажа да се измъкнем.

Можете също така да стартирате GDB с различни аргументи и опции за самото начало на вашето отстраняване на грешки на околната среда по-добре.

опции за командния ред, описани тук, са предназначени за покриване на най-различни ситуации; deytsvitelno в някои от тези опции може да не е наличен в някои среди.

Най-често, GDB работи само с един аргумент, като посочва изпълнима програма:

Можете да започнете с двете изпълнима програма и основен файл:

Ако искате да се трасира процес се изпълнява в момента, вместо това, можете да укажете втория аргумент на идентификатора на процеса:

ще приложи GDB да обработва 1234 (освен ако, разбира се, че не е нужно файл с име `1234". GDB първо проверете за основен файл).

Предимствата, които могат да се получат, когато втори аргумент на командния ред изисква доста пълна операционна система; Ако използвате GDB като дистанционно дебъгер свързан към компютър без операционна система, не може да има всякаква представа за "процес", а често и няма начин да се изсере. GDB ще ви предупреди, ако не може да приложи или да прочетете основните сметища.

Можете да стартирате GDB без печат на съобщението, описващ липсата на гаранция, като се посочва -silent.

В допълнение, можете да контролирате начина, GDB стартира с помощта на командния ред. Самата GDB може да ви напомня за наличните опции.

за показване на всички налични опции и опишете накратко тяхното използване (по-кратък еквивалент --- `GDB -h").

Всички ключове, които сте задали и параметрите на командния ред се обработват последователно. Процедурата става важно, когато се използва `-х" гаечен ключ.

При стартиране GDB чете никакви аргументи, различни от опции като посочва изпълним файл и ядро ​​файл (или процес ID), точно както ако аргументите бяха определени клавиши `-se" and` -c ", съответно. (GDB каза първият параметър без да има съответното знаме ключ еквивалент ключ `-se", последван от този параметър ;. И вторият параметър, без да има подходящия ключ флаг, ако това е, което е равно key` -c ", последвана това. опция.)

Ако GDB е конфигуриран да включва основната подкрепа на файл, който е случаят с повечето вградени цели, то ще се оплакват от втори аргумент и да го игнорирате.

Ключове -mapped и -readnow често използвани заедно за изграждане на `файл .syms. който съдържа пълна информация символ. "Ето един прост старта на GDB, не направи нищо, но се изгради a` .syms (. Файл за бъдеща справка виж раздел 12.1 команди да се уточни файлове за информация относно файловете` .syms..) ":

откажат [израз] р да излезете GDB, използва се откажат от командата (съкращение р), или тип край на файл (обикновено C-D). Ако не посочите израз. GDB ще прекрати нормално; в противен случай, той използва в резултат на експресията като код за грешка.

Прекъсване (често C-в) не излезе от GDB, а по-скоро се прекратява всякаква изпълнява командата и ви връща към нивото на команда. Можете спокойно да използвате за прекъсване по всяко време, защото GDB не позволява то да влезе в сила преди това е безопасно.

Ако използвате GDB да контролира приложен процес или устройство, можете да го пуснете с командата откачване (вж. Раздел 4.7 Отстраняване на грешки в процеса на вече работи).

Ако случайно сте взели да изпълни обвивката команди по време на отстраняване на грешки сесия, то няма смисъл да напусне или да спре GDB; просто използвайте командата черупка. черупка команда низ Invoke стандартен корпус за изпълнение на командния ред. Околната среда променлива SHELL. ако има такъв, той определя кои плащам да се изпълнява. В противен случай, GDB използва обвивка по подразбиране ( `/ хамбар / од" на Unix системи, `COMMAND.COM" в MS-DOS, и така нататък).

развитие на околната среда, често е необходимо да се използва помощна програма марката. За тази цел не е нужно да използвате командата черупка в GDB: направи на грим аргументи Изпълнение на програмата грим с посочените аргументи. Това е еквивалентно на `черупка правя да-аргументи.