Qualcuno potrebbe spiegare le colonne mostrate nella tabella dei simboli usando readelf
?Quali sono i significati delle colonne della tabella dei simboli visualizzati da solo?
risposta
È possibile:
man readelf
o guardare a questi tutorial:
Si consideri il seguente: tavolo
Simbolo .symtab
contiene 1203 voci:
Num: Value Size Type Bind Vis Ndx Name
310: a0008120 0 NOTYPE GLOBAL DEFAULT ABS _gp
734: a0000010 32 OBJECT GLOBAL DEFAULT 77 v
818: 9d000018 496 FUNC GLOBAL DEFAULT 71 main
849: a0000124 4 OBJECT GLOBAL DEFAULT 78 phrase
955: a0000000 9 OBJECT GLOBAL DEFAULT 77 peppers
1020: a000023c 192 OBJECT GLOBAL DEFAULT 80 bins
Num:
= Il numero simboloValue
= L'indirizzo del SimboloSize
= La dimensione del simbolo- tipo
Type
= simbolo:Func
= Funzione,Object
,File
(nome del file sorgente),Section
= sezione di memoria,Notype
= non tipizzata simbolo assoluto o non definito Bind
=GLOBAL
legame significa che il simbolo è visibile all'esterno del file. Il bindingLOCAL
è visibile solo nel file.WEAK
è come globale, il simbolo può essere ignorato.Vis
= I simboli possono essere predefiniti, protetti, nascosti o interni.Ndx
= Il numero della sezione il simbolo è in ABS significa assoluta:. Non regolato per il trasferimento di qualsiasi indirizzo sezioneName
= simbolo nome
cosa significa "UNICO" come valore per legare ?? –
@Caladain Che cosa significa "La dimensione del simbolo"? Dite, se il simbolo è un nome di funzione, dose "Dimensione" significa la dimensione della funzione (ad esempio quante istruzioni ha questa funzione)? –
Ok questa domanda è vecchia, ma il buon vecchio Google cede se stai cercando symboltable e NDX;
Ecco cosa ho scoperto:
Il codice C compilato con avr-gcc:
int XYZ = 123;
int ABC;
quando il file elfo generato viene analizzato utilizzando
readelf --symbols KoreOS.elf
si ottiene come output :
Num: Value Size Type Bind Vis Ndx Name
...
148: 0080200b 2 OBJECT GLOBAL DEFAULT 2 XYZ
...
258: 00803878 2 OBJECT GLOBAL DEFAULT 3 ABC
...
Io uso la colonna NDX come suggerimento se la variabile è inizializzata o meno. Ma non ho trovato documentazione ovunque, quindi sto solo supponendo.
saluti, Dominik
penso campo Ndx dimostra il numero della sezione in cui si definisce quel simbolo.
Fare un readelf -a <file>
e scoprire a quale sezione corrisponde l'indirizzo per un dato simbolo.
Scommetto che il numero di sezione di quella sezione verrà visualizzato nel campo Ndx.
- 1. Quali sono i significati delle chiavi hash quando si chiama ObjectSpace.count_objects?
- 2. LINQ: ottenere i nomi delle colonne della tabella
- 3. Quali sono i vantaggi dell'utilizzo della notazione @Deprecated solo sull'interfaccia?
- 4. Quali sono i vantaggi delle coroutine?
- 5. Quali sono i vantaggi delle diverse endianness?
- 6. Creazione della tabella dei simboli per gdb usando cmake
- 7. Tornando una libreria condivisa tabella dei simboli
- 8. Modifica dei simboli visualizzati di un campo password HTML
- 9. Quali sono i vantaggi dei puntoni
- 10. Quali sono i segni dell'inizializzazione delle croci?
- 11. Quali sono i rischi delle sessioni PHP?
- 12. Basta avere i nomi delle colonne dalla tabella alveare
- 13. Creare una tabella con i nomi delle colonne derivate da valori di riga di un'altra tabella
- 14. accesso tabella dei simboli ELF in C
- 15. Dove sono i simboli gcov?
- 16. SQL Server Determinare le dimensioni fisiche delle colonne della tabella
- 17. Utilizzo di GetSchemaTable() per recuperare solo i nomi delle colonne
- 18. Quali sono i rischi dell'utilizzo dei dati: image/jpeg; base64?
- 19. Selezionare solo valori distinti da due colonne da una tabella
- 20. Quali sono i vantaggi/gli svantaggi dei framework, delle librerie e dei bundle di Cocoa?
- 21. Recupera i nomi delle colonne da java.sql.ResultSet
- 22. Come utilizzare i simboli della tabella ASCII estesa in C?
- 23. CSS: bordi tra le colonne della tabella solo
- 24. Perché le colonne della tabella di stile non sono consentite?
- 25. in R, personalizzare i nomi delle colonne create da dcast.data.table
- 26. Quali sono i significati degli elementi nel messaggio di errore "Trappola allineamento"?
- 27. Estrarre la tabella dei simboli usando clang
- 28. GDB dice "nessuna tabella dei simboli", ma nm mostra il file ha i simboli di debug
- 29. Quali sono i limiti delle funzioni multi curl di PHP?
- 30. È possibile accedere alla tabella dei simboli in una macro?
Sono anche interessato a una risposta a questa domanda. In particolare, cos'è Ndx (da readelf -s)? Probabilmente è ovvio per qualcuno che capisce l'elfo. Ho guardato sia la pagina man sia i documenti che hai elencato e non sono riuscito a trovare le informazioni lì. Forse l'ho appena perso? Non sarebbe la prima volta. – ejgottl
Soprattutto: leggi gli standard indicati da LSB: http://www.sco.com/developers/gabi/2003-12-17/contents.html è il più interessante. –