Startpagina > Omgeving & hulpmiddelen > nm

nm: Object file symbol list bekijken

Het nm-commando toont een lijst met symbolen (functies, variabelen, etc.) uit gecompileerde objectbestanden, statische bibliotheken, gedeelde bibliotheken, enz. Hiermee kunt u de structuur van een programma begrijpen en het gebruiken voor debugging.

Overzicht

nm analyseert de symbooltabel in objectbestanden en geeft de naam, het type, het adres, enz. van elk symbool weer. Dit is nuttig voor het diagnosticeren van koppelingsproblemen, het controleren van bibliotheekinhoud en het analyseren van code-optimalisatie.

Belangrijkste functies

  • Toon de lijst met symbolen van een objectbestand
  • Identificeer symbooltypen (functie, variabele, gedefinieerd, ongedefinieerd, enz.)
  • Geef informatie over symbooladressen en -groottes
  • Ondersteuning voor C++ naam demangling

Belangrijkste opties

Het nm-commando biedt verschillende opties om de lijst met symbolen te filteren en de uitvoerindeling te regelen.

Symboolfiltering

Uitvoerindeling

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`nm` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Bekijk verschillende manieren om symboolinformatie uit objectbestanden te controleren met het nm-commando.

Basis symboollijst bekijken

gcc -c main.c -o main.o
nm main.o

Toont alle symbolen van een gecompileerd uitvoerbaar bestand of objectbestand in het standaardformaat.

Alleen ongedefinieerde symbolen bekijken

nm -u main.o

Handig voor het diagnosticeren van koppelingsproblemen door alleen ongedefinieerde symbolen weer te geven, zoals niet-gekoppelde externe functies of variabelen.

C++ symbool demangling

g++ -c my_class.cpp -o my_class.o
nm -C my_class.o

Converteert complexe symboolnamen van C++ objectbestanden naar een leesbaar formaat.

Weergeven met symboolgrootte

nm -S main.o

Toont de grootte (in bytes) van elk symbool, samen met het adres.

Tips & Aandachtspunten

Tips en aandachtspunten voor het effectief gebruiken van het nm-commando.

Symbooltype tekens

De tekens naast elk symbool in de uitvoer van nm geven het type van het symbool aan. Hoofdletters geven globale symbolen aan, kleine letters geven lokale symbolen aan.

  • A: Absoluut symbool
  • B/b: Ongedefinieerde datasectie (BSS)
  • D/d: Geïnitialiseerde datasectie
  • T/t: Tekst (code) sectie
  • U: Ongedefinieerd symbool
  • W/w: Zwak symbool

Gebruik voor debugging

nm is erg nuttig voor het diagnosticeren van linkerfouten of het controleren of specifieke functies of variabelen correct zijn opgenomen in een bibliotheek. Vooral de -u optie helpt bij het oplossen van koppelingsproblemen door ongedefinieerde verwijzingen te vinden.


Hétzelfde categoriecommando