Readelf

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

readelf - Visa information om ELF-format objektfiler

Kommandot `readelf` används för att visa information om objektfiler i ELF-format (Executable and Linkable Format).

Syntax

readelf [ALTERNATIV] FIL...

Beskrivning

Kommandot `readelf` visar detaljerad information om ELF-format objektfiler, inklusive information om sektioner, segment, symboltabeller, och mer. Det är ett kraftfullt verktyg för utvecklare och systemadministratörer som behöver inspektera och analysera ELF-filer.

Alternativ

Kommandot `readelf` stöder flera alternativ som kan användas för att justera dess beteende:

  • -a, --all - Visa alla möjliga informationskategorier.
  • -h, --file-header - Visa ELF-filhuvudet.
  • -l, --program-headers, --segments - Visa programhuvuden.
  • -S, --section-headers, --sections - Visa sektionhuvuden.
  • -e, --headers - Visa alla huvuden.
  • -s, --syms, --symbols - Visa symboltabellen.
  • -n, --notes - Visa informationsnoteringar.
  • -r, --relocs - Visa relokeringstabellen.
  • -u, --unwind - Visa unwind information för funktioner.
  • -d, --dynamic - Visa dynamiska sektionen.
  • -V, --version-info - Visa version information.
  • -A, --arch-specific - Visa arkitektur-specifik information.
  • -x, --hex-dump=NAME - Visa hexadecimalt innehåll för sektionen med namn NAME.
  • -w[liaprmfFsoRtuk] or --debug-dump[=options] - Visa olika typer av felsökningsinformation.
  • -p, --string-dump=NUM - Visa strängtabellen för sektionen NUM.
  • -R, --relocated-dump=NUM - Visa relokerat innehåll för sektionen NUM.
  • -c, --archive-index - Visa innehållet i arkivets symboltabell.
  • -D, --use-dynamic - Visa dynamisk symboltabell.
  • -z, --decompress - Dekomprimera sektioner före visning.
  • --help - Visa hjälpmeddelande och avsluta.
  • --version - Visa versionsinformation och avsluta.

Exempel

Här är några praktiska exempel som visar hur du kan använda `readelf`-kommandot:

  • För att visa ELF-filhuvudet:

readelf -h fil.elf

  • För att visa programhuvuden:

readelf -l fil.elf

  • För att visa sektionhuvuden:

readelf -S fil.elf

  • För att visa symboltabellen:

readelf -s fil.elf

  • För att visa alla huvuden:

readelf -e fil.elf

  • För att visa dynamiska sektionen:

readelf -d fil.elf

  • För att visa hexadecimalt innehåll för en specifik sektion:

readelf -x .text fil.elf

Skillnader mellan macOS och Linux

Det finns några skillnader att tänka på när man använder `readelf` på macOS jämfört med Linux:

Tillgänglighet: `readelf`-kommandot är generellt sett tillgängligt på de flesta Linux-distributioner som en del av GNU Binutils-paketet. På macOS kan `readelf` behöva installeras via Homebrew eftersom det inte är inkluderat som standard. Format: Eftersom macOS använder Mach-O som sitt standard binära format, kommer `readelf` inte att fungera på Mach-O-filer. `readelf` är specifikt utformat för att analysera ELF-filer, som är standard på Linux-system.

Exempel på att använda `readelf` på macOS: För att använda `readelf` på macOS måste du först installera det via Homebrew:


brew install binutils

Exempel på att använda `readelf` på Linux:

  • För att visa ELF-filhuvudet:

readelf -h fil.elf

Det är alltid bra att konsultera `man`-sidan för `readelf` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `readelf`, kontrollera följande:

  • Att du använder rätt syntax och alternativ för ditt specifika kommando.
  • Att objektfilen du försöker visa existerar och är i ELF-format.
  • Att du har nödvändiga behörigheter för att läsa objektfilen.

Se även

  • objdump - Visa detaljerad information om objektfiler.
  • nm - Visa symboltabellen för objektfiler.
  • file - Bestäm filtyp.

Källor