Questo è il comando alpha-linux-gnu-objdump che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
objdump - visualizza le informazioni dai file oggetto.
SINOSSI
objdump [-a|-CHive-Headers]
[-b bfdname|--bersaglio=bfdname]
[-C|--demaglia[=style]]
[-d|--smontare]
[-D|--disassembla-tutto]
[-z|--smontare-zeri]
[-EB|-IL|--endian={grande | poco }]
[-f|--file-header]
[-F|--file-offset]
[--file-inizio-contesto]
[-g|--debug]
[-e|--tag-di-debug]
[-h|--intestazioni di sezione|--header]
[-i|--Informazioni]
[-j pagina|--sezione=pagina]
[-l|--numeri-riga]
[-S|--fonte]
[-m macchina|--architettura=macchina]
[-M Opzioni|--opzioni-disassembler=Opzioni]
[-p|--intestazioni-private]
[-P Opzioni|--privato=Opzioni]
[-r|--rilocare]
[-R|--dynamic-rilocazione]
[-s|--contenuto-completo]
[-W[lLiaprmffFsoRt]|
--nano[= rawline, = decodedline, = info, = Abbrev, = pubnames]
[=arange,=macro,=frames,=frames-interp,=str,=loc]
[=Intervalli,=pubtypes,=trace_info,=trace_abbrev]
[=trace_aranges,=gdb_index]
[-G|--pugnala]
[-t|--sim]
[-T|--sim-dinamici]
[-x|--tutte le intestazioni]
[-w|--largo]
[--indirizzo-iniziale=indirizzo]
[--indirizzo-stop=indirizzo]
[--prefisso-indirizzi]
[--[no-]show-raw-insn]
[--regola-vma=offset]
[--sims-speciali]
[--prefisso=prefisso]
[--prefisso-striscia=livello]
[--insn-larghezza=larghezza]
[-V|--versione]
[-H|--Aiuto]
objfile...
DESCRIZIONE
objdump visualizza informazioni su uno o più file oggetto. Le opzioni controllano cosa
particolari informazioni da visualizzare. Queste informazioni sono per lo più utili ai programmatori che
stanno lavorando sugli strumenti di compilazione, al contrario dei programmatori che vogliono solo i loro
programma da compilare e lavorare.
objfile... sono i file oggetto da esaminare. Quando si specificano gli archivi, objdump spettacoli
informazioni su ciascuno dei file oggetto membro.
VERSIONI
Le forme lunghe e corte delle opzioni, mostrate qui come alternative, sono equivalenti. Almeno
un'opzione dalla lista -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T ,-V,-x deve essere
dato.
-a
--archive-intestazione
Se qualcuno dei objfile i file sono archivi, visualizza le informazioni sull'intestazione dell'archivio (in a
formato simile a ls -l). Oltre alle informazioni che potresti elencare con ar tv, objdump
-a mostra il formato del file oggetto di ciascun membro dell'archivio.
--regola-vma=offset
Quando si scaricano le informazioni, aggiungere prima offset a tutti gli indirizzi di sezione. Questo è
utile se gli indirizzi di sezione non corrispondono alla tabella dei simboli, che può
accade quando si inseriscono sezioni in indirizzi particolari quando si utilizza un formato che non può
rappresentano indirizzi di sezione, come a.out.
-b bfdname
--bersaglio=bfdname
Specificare che il formato del codice oggetto per i file oggetto è bfdname. Questa opzione potrebbe
non essere necessario; objdump può riconoscere automaticamente molti formati.
Per esempio,
objdump -b oasys -m vax -h fu.o
visualizza informazioni di riepilogo dalle intestazioni di sezione (-h) di fu.o, Che ha
identificato esplicitamente (-m) come file oggetto VAX nel formato prodotto da Oasys
compilatori. Puoi elencare i formati disponibili con il -i opzione.
-C
--demanle[=style]
Decodifica (smantellare) nomi di simboli di basso livello in nomi di livello utente. Oltre a rimuovere qualsiasi
carattere di sottolineatura iniziale anteposto dal sistema, questo rende leggibili i nomi delle funzioni C++.
Diversi compilatori hanno diversi stili di manipolazione. Lo stile scomponibile opzionale
L'argomento può essere usato per scegliere uno stile di smantellamento appropriato per il tuo compilatore.
-g
--debug
Visualizza le informazioni di debug. Questo tenta di analizzare il formato di debug STABS e IEEE
informazioni memorizzate nel file e stamparlo utilizzando una sintassi simile al C. Se nessuno dei due
si trovano questi formati questa opzione ricade su -W opzione per stampare qualsiasi DWARF
informazioni nel file.
-e
--tag-di-debug
Come -g, ma le informazioni vengono generate in un formato compatibile con lo strumento ctags.
-d
--smontare
Visualizza i mnemonici dell'assemblatore per le istruzioni della macchina da objfile. Questo
opzione disassembla solo quelle sezioni che dovrebbero contenere istruzioni.
-D
--disassembla-tutto
Come -d, ma smonta il contenuto di tutte le sezioni, non solo quelle previste
contenere istruzioni.
Questa opzione ha anche un sottile effetto sullo smontaggio delle istruzioni nel codice
sezioni. Quando opzione -d è in effetti objdump assumerà che tutti i simboli presenti in
una sezione di codice si verifica al confine tra le istruzioni e si rifiuterà di farlo
smontare attraverso un tale confine. Quando opzione -D è in effetti comunque questo
ipotesi è soppressa. Ciò significa che è possibile per l'uscita di -d e -D
differire se, ad esempio, i dati sono archiviati in sezioni di codice.
Se il target è un'architettura ARM questo switch ha anche l'effetto di forzare il
disassemblatore per decodificare pezzi di dati trovati nelle sezioni di codice come se lo fossero
istruzioni.
--prefisso-indirizzi
In fase di smontaggio, stampare l'indirizzo completo su ogni riga. Questo è il più vecchio
formato di smontaggio.
-EB
-IL
--endian={grande|piccolo}
Specificare l'endianità dei file oggetto. Ciò riguarda solo lo smontaggio. questo può
essere utile quando si smonta un formato di file che non descrive endianness
informazioni, come gli S-record.
-f
--file-header
Visualizza le informazioni di riepilogo dall'intestazione generale di ciascuna delle objfile File.
-F
--file-offset
Quando si smontano le sezioni, ogni volta che viene visualizzato un simbolo, visualizzare anche il file
offset della regione di dati che sta per essere scaricata. Se gli zeri vengono saltati,
quindi quando riprende lo smontaggio, dire all'utente quanti zeri sono stati saltati e il file
offset della posizione da cui riprende lo smontaggio. Quando si scaricano le sezioni,
visualizzare l'offset del file della posizione da cui inizia il dump.
--file-inizio-contesto
Specificare che quando si visualizza il codice sorgente/disassemblato tra gli elenchi (presuppone -S) da un
file che non è stato ancora visualizzato, estendere il contesto all'inizio del file.
-h
--intestazioni di sezione
--header
Visualizza le informazioni di riepilogo dalle intestazioni di sezione del file oggetto.
I segmenti di file possono essere riposizionati su indirizzi non standard, ad esempio utilizzando il pulsante
-Ttesto, -Tdati, o -Accidenti opzioni a ld. Tuttavia, alcuni formati di file oggetto, come
a.out, non memorizzare l'indirizzo iniziale dei segmenti di file. In quelle situazioni,
sebbene ld riposiziona correttamente le sezioni, usando objdump -h per elencare il file
le intestazioni di sezione non possono mostrare gli indirizzi corretti. Invece, mostra il solito
indirizzi, che sono impliciti per il target.
-H
--Aiuto
Stampa un riepilogo delle opzioni per objdump e uscita.
-i
--Informazioni
Visualizza un elenco che mostra tutte le architetture e i formati di oggetti disponibili per
specifica con -b or -m.
-j Nome
--sezione=Nome
Visualizza le informazioni solo per la sezione Nome.
-l
--numeri-riga
Etichetta il display (usando le informazioni di debug) con il nome del file e la riga di origine
numeri corrispondenti al codice oggetto o alle rilocazioni mostrate. Utile solo con -d, -D, o
-r.
-m macchina
--architettura=macchina
Specificare l'architettura da utilizzare durante il disassemblaggio dei file oggetto. Questo può essere utile
quando si disassemblano file oggetto che non descrivono le informazioni sull'architettura, come
come S-record. Puoi elencare le architetture disponibili con il -i opzione.
Se la destinazione è un'architettura ARM, questa opzione ha un effetto aggiuntivo. Esso
limita il disassemblaggio alle sole istruzioni supportate dall'architettura
specificato da macchina. Se è necessario utilizzare questo interruttore perché il file di input
non contiene alcuna informazione sull'architettura, ma si desidera anche smontare
tutte le istruzioni uso -marma.
-M Opzioni
--opzioni-disassembler=Opzioni
Passa le informazioni specifiche dell'obiettivo al disassemblatore. Supportato solo su alcuni target.
Se è necessario specificare più di un'opzione di disassemblatore, allora multiple -M
le opzioni possono essere utilizzate o possono essere messe insieme in un elenco separato da virgole.
Se l'obiettivo è un'architettura ARM, questo interruttore può essere utilizzato per selezionare quale
Il nome del registro impostato viene utilizzato durante il disassemblatore. Specificando -M nomi-reg-std (la
default) selezionerà i nomi dei registri utilizzati nel set di istruzioni di ARM
documentazione, ma con registro 13 detto 'sp', registro 14 detto 'lr' e registro
15 chiamato 'pc'. Specificando -M nomi-reg-apcs selezionerà il set di nomi usato da ARM
Procedure Call Standard, pur specificando -M nomi-reg-raw userò solo r seguito
dal numero di registro.
Ci sono anche due varianti sullo schema di denominazione del registro APCS abilitato da -M regi-
nomi-atpcs e -M nomi-reg-speciali-atpcs che utilizzano la chiamata di procedura ARM/Thumb
Convenzioni di denominazione standard. (O con i normali nomi di registro o con quelli speciali
nomi di registro).
Questa opzione può essere utilizzata anche per le architetture ARM per forzare il disassemblatore a
interpretare tutte le istruzioni come istruzioni del pollice utilizzando l'interruttore
--disassembler-options=forza pollice. Questo può essere utile quando si tenta di smontare
thumb code prodotto da altri compilatori.
Per l'x86, alcune delle opzioni duplicano le funzioni del -m passare, ma consentire più fine
controllo granuloso. È possibile specificare più selezioni tra le seguenti come virgola
stringa separata.
"x86-64"
"I386"
"I8086"
Selezionare il disassemblaggio per l'architettura data.
"intel"
"att"
Selezionare tra la modalità sintassi Intel e la modalità sintassi AT&T.
"amd64"
"intel64"
Selezionare tra AMD64 ISA e Intel64 ISA.
"intel-mnemonico"
"att-mnemonico"
Selezionare tra la modalità mnemonic Intel e la modalità mnemonic AT&T. Nota: "intel-mnemonico"
implica "intel" e "att-mnemonic" implica "att".
"addr64"
"addr32"
"addr16"
"dati32"
"dati16"
Specificare la dimensione dell'indirizzo predefinita e la dimensione dell'operando. Queste quattro opzioni saranno
sovrascritto se "x86-64", "i386" o "i8086" compaiono più avanti nella stringa dell'opzione.
"suffisso"
In modalità AT&T, indica al disassemblatore di stampare un suffisso mnemonico anche quando
il suffisso potrebbe essere dedotto dagli operandi.
Per PowerPC, prenota controlla lo smontaggio delle istruzioni BookE. 32 e 64 select
Disassemblaggio di PowerPC e PowerPC64, rispettivamente. e300 seleziona lo smontaggio per il
famiglia e300. 440 seleziona lo smontaggio per il PowerPC 440. ppps seleziona lo smontaggio
per le singole istruzioni accoppiate del PPC750CL.
Per MIPS, questa opzione controlla la stampa dei nomi mnemonici delle istruzioni e del registro
nomi nelle istruzioni smontate. Le selezioni multiple tra le seguenti possono essere
specificata come stringa separata da virgole e le opzioni non valide vengono ignorate:
"senza pseudonimi"
Stampa il mnemonico dell'istruzione 'raw' invece di qualche pseudo mnemonico dell'istruzione.
Ad esempio, stampa 'daddu' o 'or' invece di 'move', 'sll' invece di 'nop', ecc.
"msa"
Smontare le istruzioni MSA.
"virtù"
Smontare le istruzioni dell'ambiente del servizio app di virtualizzazione.
"xpa"
Smontare le istruzioni dell'ASE eXtended Physical Address (XPA).
"gpr-names=ABI"
Stampa i nomi GPR (general-purpose register) appropriati per l'ABI specificato.
Per impostazione predefinita, i nomi GPR sono selezionati in base all'ABI dell'essere binario
smontato.
"fpr-names=ABI"
Stampa i nomi FPR (registro a virgola mobile) appropriati per l'ABI specificato.
Per impostazione predefinita, vengono stampati i numeri FPR anziché i nomi.
"cp0-names=ARCO"
Stampa i nomi dei registri CP0 (coprocessore di controllo del sistema; coprocessore 0) come
appropriato per la CPU o l'architettura specificata da ARCH. Per impostazione predefinita, CP0
i nomi dei registri sono selezionati in base all'architettura e alla CPU del binario
essere smontato.
"hwr-names=ARCO"
Stampa i nomi HWR (registro hardware, utilizzato dall'istruzione "rdhwr") come
appropriato per la CPU o l'architettura specificata da ARCH. Per impostazione predefinita, i nomi HWR
sono selezionati in base all'architettura e alla CPU dell'essere binario
smontato.
"reg-names=ABI"
Stampa i nomi GPR e FPR in base all'ABI selezionato.
"reg-names=ARCO"
Stampa i nomi di registro specifici della CPU (registro CP0 e nomi HWR) come appropriato per
la CPU o l'architettura selezionata.
Per una qualsiasi delle opzioni sopra elencate, ABI or ARCH può essere specificato come numerico avere
numeri stampati anziché nomi, per i tipi di registri selezionati. Puoi elencare
i valori disponibili di ABI e ARCH usando il --Aiuto opzione.
Per VAX, è possibile specificare gli indirizzi di ingresso della funzione con -M voce:0xf00ba. È possibile utilizzare
questo più volte per disassemblare correttamente i file binari VAX che non contengono simboli
tabelle (come i dump della ROM). In questi casi, la maschera di immissione della funzione sarebbe altrimenti
decodificate come istruzioni VAX, che probabilmente porterebbero il resto della funzione ad essere
smontato erroneamente.
-p
--intestazioni-private
Stampa informazioni specifiche per il formato del file oggetto. Le informazioni esatte
stampato dipende dal formato del file oggetto. Per alcuni formati di file oggetto, no
vengono stampate ulteriori informazioni.
-P Opzioni
--privato=Opzioni
Stampa le informazioni specifiche per il formato del file oggetto. L'argomento Opzioni is
un elenco separato da virgole che dipende dal formato (viene visualizzato l'elenco delle opzioni
con l'aiuto).
Per XCOFF, le opzioni disponibili sono:
"intestazione"
"fuori"
"sezioni"
"simbolo"
"riposiziona"
"lineno",
"caricatore"
"tranne"
"tipico"
"rintracciare"
"toc"
"ldinfo"
Non tutti i formati oggetto supportano questa opzione. In particolare il formato ELF non utilizza
esso.
-r
--rilocare
Stampa le voci di rilocazione del file. Se usato con -d or -D, i trasferimenti sono
stampato intervallato dallo smontaggio.
-R
--dynamic-rilocazione
Stampa le voci di rilocazione dinamica del file. Questo è significativo solo per la dinamica
oggetti, come alcuni tipi di librerie condivise. Quanto a -r, se usato con -d or -D,
gli spostamenti sono stampati intervallati dallo smontaggio.
-s
--contenuto-completo
Visualizza il contenuto completo di tutte le sezioni richieste. Per impostazione predefinita tutto non vuoto
vengono visualizzate le sezioni.
-S
--fonte
Visualizza il codice sorgente mescolato con il disassemblaggio, se possibile. Implica -d.
--prefisso=prefisso
Specificare prefisso da aggiungere ai percorsi assoluti quando usato con -S.
--prefisso-striscia=livello
Indicare quanti nomi di directory iniziali rimuovere dai percorsi assoluti cablati.
Non ha effetto senza --prefisso=prefisso.
-Show-raw-Insn
Quando si smontano le istruzioni, stampare le istruzioni in esadecimale oltre che in simbolico
modulo. Questa è l'impostazione predefinita tranne quando --prefisso-indirizzi viene utilizzato.
--No-show-raw-Insn
Quando si smontano le istruzioni, non stampare i byte delle istruzioni. Questo è il
predefinito quando --prefisso-indirizzi viene utilizzato.
--insn-larghezza=larghezza
Dsiplay larghezza byte su una singola riga durante il disassemblaggio delle istruzioni.
-W[lLiaprmffFsoRt]
--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames]
--dwarf[=range,=macro,=frames,=frame-interp,=str,=loc]
--dwarf[=Intervalli,=pubtypes,=trace_info,=trace_abbrev]
--dwarf[=trace_aranges,=gdb_index]
Visualizza il contenuto delle sezioni di debug nel file, se presenti. Se uno
delle lettere o parole facoltative segue il passaggio quindi solo i dati presenti in quelle
sezioni specifiche saranno scaricate.
Nota che non esiste un'opzione con una sola lettera per visualizzare il contenuto delle sezioni di traccia o
.gdb_index.
Nota: l'output dal =informazioni l'opzione può anche essere influenzata dalle opzioni
--dwarf-profondità, l' --dwarf-inizio e il --controllo nano.
--dwarf-profondità=n
Limita il dump della sezione ".debug_info" a n figli. Questo è utile solo con
--nano=informazioni. L'impostazione predefinita è stampare tutti i DIE; il valore speciale 0 per n sarà anche
avere questo effetto.
Con un valore diverso da zero per n, muore a o più in profondità di n i livelli non verranno stampati. Il
gamma per n è a base zero.
--inizio-nano=n
Stampa solo DIE che iniziano con il DIE numerato n. Questo è utile solo con
--nano=informazioni.
Se specificata, questa opzione sopprimerà la stampa di qualsiasi informazione di intestazione e tutto
DIE prima del DIE numerato n. Solo fratelli e figli del DIE specificato lo faranno
essere stampato.
Questo può essere usato insieme a --dwarf-profondità.
--controllo nano
Abilita ulteriori controlli per la coerenza delle informazioni sui nani.
-G
--pugnala
Visualizza il contenuto completo di tutte le sezioni richieste. Visualizza il contenuto del
Sezioni .stab e .stab.index e .stab.excl da un file ELF. Questo è solo utile
su sistemi (come Solaris 2.0) in cui le voci della tabella dei simboli di debugging ".stab" sono
trasportato in una sezione ELF. Nella maggior parte degli altri formati di file, debug delle voci della tabella dei simboli
sono intercalati con simboli di collegamento e sono visibili nella --sim produzione.
--indirizzo-iniziale=indirizzo
Inizia a visualizzare i dati all'indirizzo specificato. Ciò influisce sull'output di -d, -r
e -s opzioni.
--indirizzo-stop=indirizzo
Interrompi la visualizzazione dei dati all'indirizzo specificato. Ciò influisce sull'output di -d, -r
e -s opzioni.
-t
--sim
Stampa le voci della tabella dei simboli del file. Questo è simile alle informazioni
concesso dall' nm programma, sebbene il formato di visualizzazione sia diverso. Il formato di
l'output dipende dal formato del file che viene scaricato, ma ci sono due principali
tipi. Uno assomiglia a questo:
[ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss
[ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
dove il numero tra parentesi quadre è il numero della voce nel simbolo
tavolo, il asciutto numero è il numero della sezione, il fl value sono i bit di flag del simbolo,
, il ty numero è il tipo del simbolo, il sc numero è la classe di memorizzazione del simbolo e
, il nx valore è il numero di voci ausiliarie associate al simbolo. L'ultimo
due campi sono il valore del simbolo e il suo nome.
L'altro formato di output comune, di solito visto con i file basati su ELF, ha il seguente aspetto:
00000000 ld .bss 00000000 .bss
00000000 g .testo 00000000 fred
Qui il primo numero è il valore del simbolo (a volte indicato come il suo indirizzo).
Il campo successivo è in realtà un insieme di caratteri e spazi che indicano i bit del flag
che sono impostati sul simbolo. Questi caratteri sono descritti di seguito. Il prossimo è il
sezione a cui è associato il simbolo o *ADDOMINALI* se la sezione è assoluta (es
non collegato ad alcuna sezione), oppure *UND* se la sezione è referenziata nel file
essere scaricato, ma non definito lì.
Dopo il nome della sezione viene un altro campo, un numero, che per i simboli comuni è il
allineamento e per altro simbolo è la dimensione. Infine viene visualizzato il nome del simbolo.
I caratteri flag sono divisi in 7 gruppi come segue:
"L"
"g"
"tu"
"!" Il simbolo è locale (l), globale (g), unico globale (u), né globale né locale
(uno spazio) o sia globale che locale (!). Un simbolo non può essere né locale né globale
per una serie di motivi, ad esempio perché viene utilizzato per il debug, ma lo è
probabilmente un'indicazione di un bug se è mai sia locale che globale. Unico
i simboli globali sono un'estensione GNU del set standard di associazioni di simboli ELF.
Per un tale simbolo il linker dinamico si assicurerà che nell'intero processo
c'è solo un simbolo con questo nome e tipo in uso.
"w" Il simbolo è debole (w) o forte (uno spazio).
"C" Il simbolo denota un costruttore (C) o un simbolo ordinario (uno spazio).
"W" Il simbolo è un avviso (W) o un simbolo normale (uno spazio). Il nome di un simbolo di avvertimento
è un messaggio da visualizzare se il simbolo che segue il simbolo di avvertenza è sempre presente
referenziato.
"IO"
"i" Il simbolo è un riferimento indiretto a un altro simbolo (I), una funzione da essere
valutata durante il processo di rilocazione (i) o un simbolo normale (uno spazio).
"d"
"D" Il simbolo è un simbolo di debug (d) o un simbolo dinamico (D) o un simbolo normale (a
spazio).
"F"
"F"
"O" Il simbolo è il nome di una funzione (F) o di un file (f) o di un oggetto (O) o semplicemente di un
simbolo normale (uno spazio).
-T
--sim-dinamici
Stampa le voci della tabella dei simboli dinamici del file. Questo è significativo solo per
oggetti dinamici, come alcuni tipi di librerie condivise. Questo è simile al
informazioni fornite dal nm programma quando viene dato il -D (--dinamico) opzione.
--sims-speciali
Quando si visualizzano i simboli, includere quelli che il bersaglio considera speciali in alcuni
modo e che normalmente non sarebbero di interesse per l'utente.
-V
--versione
Stampa il numero di versione di objdump e uscita.
-x
--tutte le intestazioni
Visualizza tutte le informazioni di intestazione disponibili, inclusa la tabella dei simboli e il riposizionamento
inserimenti. Usando -x equivale a specificare all of -a -f -h -p -r -t.
-w
--largo
Formatta alcune righe per i dispositivi di output che hanno più di 80 colonne. Inoltre no
troncare i nomi dei simboli quando vengono visualizzati.
-z
--smontare-zeri
Normalmente l'output di disassemblaggio salterà i blocchi di zeri. Questa opzione indirizza il
disassemblatore per disassemblare quei blocchi, proprio come qualsiasi altro dato.
@filetto
Leggi le opzioni della riga di comando da filetto. Le opzioni lette vengono inserite al posto di
originale @filetto opzione. Se filetto non esiste o non può essere letto, allora l'opzione
saranno trattati letteralmente e non rimossi.
opzioni in filetto sono separati da spazi bianchi. Può essere incluso un carattere di spazio bianco
in un'opzione racchiudendo l'intera opzione tra virgolette singole o doppie. Qualunque
carattere (inclusa una barra rovesciata) può essere incluso anteponendo il carattere a essere
incluso con una barra rovesciata. Il filetto può contenere a sua volta @ aggiuntivifiletto opzioni; qualunque
tali opzioni verranno elaborate in modo ricorsivo.
Usa alpha-linux-gnu-objdump online usando i servizi onworks.net