“Objdump er et kommandolinjeverktøy som brukes til å vise informasjon om et objekt på Unix-lignende systemer. Kommandoen, når den brukes, får informasjon om en objektfil selv når du ikke har kildekoden. Derfor kan det være et feilsøkingsverktøy for objektfiler, spesielt når du jobber med kompilatorprogrammer.”
Denne guiden dekker de forskjellige bruksområdene til Objdump -kommandoen med eksempler. Sjekk det ut.
Bruk av Objdump -kommandoen
Objdump har 6 hovedformål:
Dens grunnleggende syntaks er:
$ objdump
Det er mange alternativer å bruke med Objdump -kommandoen, og du kan se hjelpesiden for å se dem.
$ objdump -hjelp
Denne artikkelen vil bruke /bin /ekkoet som vår objektfil for eksemplene våre. Du kan imidlertid bruke andre objektfiler som C -programmer. Bruken er fremdeles den samme.
Jobber med Objdump
Vis filoverskrifter av objektfilen
Alternativet -F, når det brukes med Objdump -kommandoen, henter alle filoverskriftene tilknyttet en gitt objektfil, som vist nedenfor. Husk at vi bruker /bin /ekkoet, som er en binær kjørbar fil for Echo -kommandoen som vårt objekt i dette tilfellet.
$ objdump -f /bin /ekko
Den resulterende utdata som viser filoverskriftene vil være:
Du kan merke objektfilens format og overskrifter fra utdataene.
For å få de objektspesifikke filoverskriftene
Hvis du trenger å vise spesifikke filoverskrifter for objektfilen du bruker, bruker du -p -alternativet.
$ objdump -p /bin /ekko
Vis seksjonsoverskriftsinnhold
Hver fil har forskjellige seksjonsoverskrifter. Hvis du trenger å vise innholdet i hver av seksjonsoverskriftene, bruker du alternativet -h -alternativet.
$ objdump -h /bin /ekko
I dette tilfellet var utgangen:
Fra utdataene kan du legge merke til at de forskjellige seksjonsoverskriftene er nummerert fra 1, og hver seksjonshode har sin størrelse, VMA, LMA, File Off og ALGN.
Størrelse: representerer størrelsen på seksjonen lastet.
VMA: representerer den virtuelle minneadressen
LMA: representerer den logiske minneadressen
Fil av: representerer seksjonens forskyvning fra starten av filen.
Algn: representerer innretningen av seksjonen.
De andre detaljene, for eksempel alloc, data, readonly og innhold, er de forskjellige flaggene som representerer hvis seksjonen er readonly eller er lastet.
Vis informasjon om alle overskrifter
Du kan også få all informasjonen om overskriftene i objektfilen. For å gjøre dette, bruk -x -alternativet.
$ objdump -x /bin /ekko
I dette eksemplet vil den delvise utgangen for kommandoen ovenfor være:
For å få den kjørbare seksjonens samlerinnhold
For å få den kjørbare seksjonens monteringsinnhold, bruk -d -alternativet.
$ objdump -d /bin /ekko
I dette eksemplet er den delvise utgangen:
Utgangen blir delt inn i kjørbare seksjoner, og for hver vises dens monteringsinnhold som vist som vist. For eksempel kan du se seksjonen ".init ”og den tilsvarende samlerinnholdet under den før du fortsetter til neste kjørbare del av objektfilen.
Få samlerinnhold i hver seksjon
-Den viser bare monteringsinnholdet i de kjørbare seksjonene. Bruk imidlertid alternativet for D-d hvis du trenger innholdet for alle filseksjoner.
$ objdump -d /bin /ekko
For å få alt innhold i alle seksjoner
For dette, bruk -s -alternativet
$ objdump -s /bin /ekko
Utgangen for alle seksjoner og innholdet deres vil være:
Vis feilsøkingsinformasjon
Alternativet -g viser all tilgjengelig feilsøkingsinformasjon i objektfilen.
$ objdump -g /bin /ekko
Vis innhold i symboltabellen
Hvis objektfilen har en symboltabell, kan du vise innholdet ved hjelp av -t -alternativet
$ objdump -t /bin /ekko
Konklusjon
En Objdump -kommando er et nyttig verktøy for programmerere som takler kompilatorer. Kommandoen har flere bruksområder, og vi har dekket det vanligste eksemplet Bruk. Du kan også sjekke mannssiden for mer informasjon om hvordan du kan bruke verktøyet. Videre kan kommandoen bli litt overveldende. Så fortsett å øve på det mer. Beste ønsker!