Comanda Linux nm

Comanda Linux Nm



Există diferite situații în care este posibil să lucrați cu fișiere obiect sau fișiere executabile. Astfel de scenarii vă pot cere să verificați simbolurile din fișierul dvs. În Linux, puteți utiliza comanda „nume” pentru a afișa informații despre simbolurile disponibile în obiectul sau fișierul executabil.

Conform paginii sale de manual, comanda „nm” este folosită pentru a „lista simbolurile din fișierele obiect”. Aceeași comandă funcționează și cu fișierele executabile și o vom discuta în detaliu pe parcursul celor de astăzi







Înțelegerea comenzii Linux Nm folosind diferite exemple

Comanda „nm” nu vine preinstalată în unele distribuții Linux. Încercați să verificați versiunea sa cu următoarea comandă pentru a vedea dacă este instalată:



$ nm --versiune



Dacă obțineți o ieșire care este similară cu cea din următorul, înseamnă că „nm” nu este instalat:





Deci, instalați-l folosind „apt” cu următoarea comandă. Asigurați-vă că ați confirmat acțiunea apăsând „y” când vi se solicită:

$ sudo apt instalare binutils



Acum puteți verifica dacă „nm” este disponibil pe sistemul dvs. verificând din nou versiunea acestuia.

Acum, ați instalat cu succes „nm” pe sistemul dumneavoastră Linux. Următorul lucru este să înveți cum să-l folosești pentru a obține informații despre fișierele obiect țintă.

Exemplul 1: Rularea comenzii Nm

Cu „nm”, când o executați, comanda caută un fișier numit „a.out” care este un fișier obiect executabil. Dacă este găsit, atunci afișează simbolurile conținute.

$ nm

Cu toate acestea, dacă nu aveți un astfel de fișier în directorul curent, veți obține o ieșire așa cum se arată în imaginea următoare:

Să creăm un fișier C++ și apoi să îl compilam folosind g++. Când o facem, obținem un fișier „a.out” pe care îl putem folosi cu comanda „nm”.

Dacă rulăm din nou comanda „nm”, observați că obținem o ieșire care arată toate simbolurile din fișierul nostru obiect. Așa funcționează comenzile „nm”.

Exemplul 2: Afișarea simbolurilor specifice

Este posibil să găsiți un simbol specific în fișierul obiect. Dacă aveți un singur fișier obiect, ca în cazul nostru, și doriți să găsiți simbolul „principal”, rulați comanda după cum urmează:

$ nm -A a.out | prindere principal

Cu toate acestea, dacă aveți mai multe fișiere obiect sau executabile, modificați comanda pentru a apărea după cum urmează:

$ nm -A * .out | prindere principal

Exemplul 3: Afișați simbolurile nedefinite

Cu opțiunea „-u”, este posibil să obțineți doar simbolurile nedefinite în fișierul obiect. Iată un exemplu în care adăugăm opțiunea „-u” atunci când rulăm comanda:

$ nm -în a.out

Rețineți că rezultatul pe care îl obținem este mai mic și asta pentru că nu sunt afișate toate simbolurile, ci doar cele nedefinite.

Exemplul 4: Afișați dimensiunea unui simbol

Puteți căuta un anumit simbol și puteți afișa dimensiunea acestuia. Pentru aceasta, utilizați opțiunea „-s”. Să căutăm obiectul „abi” în cazul nostru și să vedem ce obținem.

$ nm -S | prindere abi

Sunt afișate doar acele simboluri care corespund criteriilor dvs. de căutare și dimensiunea lor.

Exemplul 5: Obțineți simbolurile dinamice

Opțiunea „-D” specifică faptul că numai simbolurile dinamice ar trebui să fie afișate în ieșire. În imaginea următoare, putem vedea că după adăugarea „-D”, rezultatul nostru este restrâns, deoarece sunt tipărite doar simbolurile dinamice:

Exemplul 6: Modificarea formatului de ieșire

Formatul implicit de ieșire care este folosit de „nm” este „bsd”. Cu toate acestea, puteți specifica un format diferit folosind opțiunea „-f”. De exemplu, dacă vrem să folosim formatul posix, rulați comanda noastră „nm” după cum urmează:

$ nm -f posix a.out

Exemplul 7: Lucrul cu un fișier

În loc să specificați fiecare opțiune pe care doriți să o utilizați cu comanda „nm” de pe terminal, puteți utiliza un fișier. Fișierul conține opțiunile și îl adăugați atunci când executați comanda „nm”. Comanda verifică toate opțiunile din fișier și efectuează acțiunea necesară.

Iată un exemplu de fișier care este „fișier1” care conține opțiunea „-g –size-sort”.

Pentru a face referire la fișier, executați comanda așa cum se arată în următoarele:

$ nm @ fisier1

Când se execută comanda, veți obține rezultatul dorit. În acest caz, sortăm simbolurile și adăugăm opțiunea „-g” pentru a obține simbolurile externe și ignorăm restul.

Concluzie

Comanda „nm” permite utilizatorilor să lucreze cu simboluri. Puteți folosi comanda pentru a afișa toate simbolurile dintr-un fișier executabil sau obiect. Această postare a explicat despre comanda „nm”. În plus, am oferit diferite exemple pentru a vă asigura că vă simțiți confortabil în utilizarea comenzii. Sperăm că comanda „nm” este acum clară.