Debugging cu gdb - instalarea gdb

GDB vine cu scriptul de configurare. care automatizează procesul de pregătire a GDB pentru instalare; apoi puteți utiliza marca pentru a construi programul gdb. (20)







Distribuția GDB include întregul cod sursă de care aveți nevoie pentru GDB, într-un singur director, al cărui nume este, de obicei, alcătuit prin adăugarea numărului de versiune la `gdb '.

De exemplu, distribuția GDB versiunea 5.0 este localizată în directorul `gdb-5.0 '. Acest director conține: GDB-5.0 / configure (și fișierele de suport) scenariu pentru configurații GDB și toate bibliotecile acceptate GDB-5.0 / codul sursă gdb specifică pentru a se GDB sursa GDB-5.0 / BFD pentru fișierele binare care descriu biblioteca (binar descriptorul ) gDB-5.0 / includ includ fișiere GNU cod gDB-5.0 / libiberty sursa pentru -liberty „bibliotecă gratuit software-gDB 5.0 / Opcodes codul sursă bibliotecă tabele de codificare de operații și dezasamblor codul sursă interfață GNU linie de comandă gDB` gDB-5.0 / readline -5.0 / codul sursă glob al cartografierii subrutinelor GNU Numele fișierului gdb-5.0 / mmalloc este codul sursă pentru pachetul GNU pentru alocarea memoriei

Cea mai simplă modalitate de a configura și de a construi GDB este să executați configurarea din directorul sursă `gdb-version-number '. care în acest exemplu este `gdb-5.0 '.

Mai întâi, accesați directorul sursă `gdb-version-number '. dacă nu sunteți deja în ea; apoi executați configurarea. Transmite ca argument un identificator al platformei pe care va fi executat GDB.

unde platforma este un identificator, cum ar fi "sun4" sau "decstation". Specifică platforma pe care va fi executat GDB. (De multe ori puteți omite platforma, configurați încearcă să determinați valoarea corectă examinând sistemul dvs.)

Rulați platforma `configure 'și apoi construiți biblioteca` bfd'. `readline '. `mmalloc 'și' libiberty '. și apoi gdb în sine. Fișierele sursă configurate, precum și fișierele binare, rămân în directoarele sursă corespunzătoare.

configure este un script de shell Bourne (/ bin / sh); dacă sistemul dvs. nu recunoaște automat acest lucru, atunci când vă aflați într-o altă coajă, este posibil să fie nevoie să executați în mod explicit:

Dacă rulați configurați dintr-un director care conține directoare sursă pentru mai multe biblioteci sau programe, cum ar fi `GDB-5,0„pentru versiunea 5.0, Configureaza creează fișiere de configurare pentru fiecare nivel director (dacă ai spune să nu facă acest lucru --norecursion key`“ ).

Puteți executa scriptul de configurare din orice subdirector din pachetul GDB, dacă doriți să configurați numai acest subdirector, dar asigurați-vă că specificați calea către acesta.

De exemplu, pentru versiunea 5.0, pentru a configura doar subdirectorul bfd. introduceți:

Puteți instala GND oriunde; nu are nici un fel de coduri greu codate. Cu toate acestea, trebuie să vă asigurați că shell-ul dvs. (definit de variabila de mediu `SHELL ') este disponibil pentru citirea tuturor. Amintiți-vă că GDB folosește un shell pentru a rula programul dvs. - unele sisteme nu permit GDB să depaneze procesele copil ale căror programe nu pot fi citite.

Dacă doriți să rulați versiuni GDB pe mai multe stații de lucru sau mașini vizate, aveți nevoie de gdb diferite. Compilate pentru fiecare combinație de mașini de lucru și țintă. configure este proiectat pentru a face acest lucru mai ușor, permițându-vă să creați fiecare configurație într-un subdirector separat, mai degrabă decât în ​​directorul sursă. Dacă programul dvs. suportă "VPATH" (GNU face acest lucru), apelul face în fiecare dintre aceste directoare construiește programul gdb. definit acolo.







Pentru a construi gdb într-un director separat, executați configurarea cu opțiunea `--srcdir '. pentru a determina unde să căutați sursa. (De asemenea, trebuie să se determine calea pentru a căuta Configure din directorul de lucru în cazul în care calea de a configura la fel ca parametrul `--srcdir„key` --srcdir.“Poate fi omisă ;. A vrut să spună.)

De exemplu, în versiunea 5.0, puteți construi GDB într-un director separat pentru Sun 4 astfel:

Când configurația construiește o configurație utilizând un director sursă la distanță, creează un arbore pentru fișierele binare cu aceeași structură (și folosind aceleași nume) ca arborele directorului sursă. În acest exemplu, ați găsi biblioteca Sun 4 `libiberty.a 'în directorul' gdb-sun4 / libiberty '. și GDB în sine în `gdb-sun4 / gdb '.

Un motiv comun pentru a construi mai multe configurații GDB în directoare separate este de a configura GDB pentru compilării (în cazul în care GDB rulează pe o mașină de lucru ---. În timp ce depanare programe care rulează pe o mașină diferită --- ținta). Definiți mașina de destinație încrucișată cu tasta `--target = target 'configurați.

Când rulați să creați un program sau o bibliotecă, trebuie să o executați din directorul configurat --- al directorului din care ați apelat configurarea (sau din una din subdirectoarele sale).

Makefile. care creează configurarea în fiecare director sursă, este, de asemenea, executată recursiv. Dacă introduceți face într-un director sursă, cum ar fi `GDB-5.0„(sau într-un director care este configurat separat by` --srcdir = /gdb-5.0 director-name“), va construi toate bibliotecile necesare și apoi GDB.

Când aveți mai multe configurații de lucru sau ținte în directoare separate, puteți rula să le creați în paralel (de exemplu, dacă sunt montate pe NFS pe fiecare mașină de lucru); acestea nu vor intra în conflict între ele.

Specificațiile utilizate pentru mașinile de lucru și țintă din scriptul de configurare. sunt denumite în conformitate cu schema numelui format din trei părți, dar sunt acceptate și câteva sinonime predefinite. Schema completă de numire codifică trei fragmente de informații în conformitate cu următorul model:

De exemplu, puteți utiliza sinonimul sun4 ca parametru de platformă. sau ca valoare a țintei în target-target = target. Denumirea completă echivalentă este "sparc-sun-sunos4".

Scriptul de configurare. GDB-ul care îl însoțește nu oferă niciun mijloc de a solicita retragerea tuturor denumirilor de mașini de lucru și a obiectivelor acceptate sau abrevierile acestora. configurați apelurile script-ul shell Bourne config.sub pentru a afișa abrevierile în nume complet; dacă doriți, puteți să consultați scenariul sau să îl utilizați pentru a testa ipotezele dvs. despre abrevieri. De exemplu:

config.sub este, de asemenea, distribuit în directorul sursă GDB (`gdb-5.0 ', pentru versiunea 5.0).

Iată o prezentare generală a cheilor și configurarea parametrilor. care sunt cel mai adesea folosite pentru a construi GDB. configurați are, de asemenea, o serie de alte chei care nu sunt reprezentate aici. Vedeți fișierul Info `configure.info ', nodul` What Configure Does', pentru o explicație completă a configurării.

Dacă doriți, puteți introduce cheile cu un `- '. nu cu `- '; Dar puteți scurta numele cheilor dacă folosiți "-". --help Afișează o prezentare rapidă a modului de a apela configurarea. --prefix = director Configurați sursa pentru a instala programe și fișiere în subdirectoarele `directorului '. --exec-prefix = director Configurați sursa pentru a instala programele în directorul `director '. --srcdir = nume-director Avertisment: folosirea acestei chei necesită crearea de GNU sau alt program de realizare. realizarea capabilităților VPATH.
Utilizați această tastă pentru a crea configurații în directoare separate de directorul sursă GDB. În plus, îl puteți utiliza pentru a construi (sau susține) mai multe configurații simultan în directoare separate. configure scrie fișierele de configurare în directorul curent, dar ia pașii pentru a utiliza sursele din directorul nume-director. configure configurează directoarele din interiorul directorului de lucru în paralel cu directoarele sursă din interiorul directorului-nume. - norecursion Configurați numai nivelul directoarelor unde se execută configurarea; Nu distribuiți configurația subdirectoarelor. --target = target Configurați GDB pentru programele de depanare încrucișată care rulează pe țintă specificată. Fără această cheie, GDB este configurat să depaneze programele care rulează pe aceeași mașină (platformă) ca și GDB. Nu există o modalitate convenabilă de a genera o listă cu toate țintele disponibile. platformă. Configurați GDB pentru a rula pe platforma specificată. Nu există o modalitate convenabilă de a genera o listă cu toate platformele valide.

Există, de asemenea, multe alte chei, dar de obicei sunt necesare doar pentru scopuri speciale.







Articole similare

Trimiteți-le prietenilor: