GNU/Linux >> Linux Esercitazione >  >> Linux

Perché nm non mostra simboli per /lib/i386-linux-gnu/libc.so.6?

Probabilmente ha rimosso i suoi simboli regolari e ciò che resta sono i suoi simboli dinamici, che puoi ottenere con nm -D .


@PSkocik ha risposto a questo. Voglio solo aggiungere più dettagli. Ci sono due tipi di sezioni di simboli in ELF:.symtab e .dynsym (vedi Linux Standard Base Core Specification, a.k.a. LSB_5.0.0, per i dettagli). .symtab è per la fase di collegamento della libreria condivisa stessa. Una volta terminato il collegamento, il file .symtab la sezione non è più necessaria. Il .dynsym La sezione contiene simboli importanti che dovrebbero essere cercati dal linker dinamico in fase di esecuzione. nm per impostazione predefinita scarica solo i simboli nel .symtab sezione.

LSB_5.0.0 Sezione 10.2.2.1, "Tipi di sezione ELF", afferma che una libreria condivisa conforme dovrebbe avere .symtab o .dynsym ma non entrambi. Come parte della libreria ABI, libc è stato rimosso dal .symtab essere conforme alle specifiche.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Bash =~ Regex e HTTPS://regex101.com/?

  3. Perché le operazioni Ssh richiedono sempre una passphrase? (con Ed25519)?

  4. autorizzazione negata per il compositore in /usr/local/bin/

  5. Perché dovrei creare una partizione separata per /tmp?

Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

unix:///var/run/supervisor.sock nessun file di questo tipo

Perché mettere cose diverse da /home in una partizione separata?

Perché le directory /home, /usr, /var, ecc. hanno tutte lo stesso numero di inode (2)?

Perché sono necessari < o > per usare /dev/tcp

Differenza e uso corretto per /tmp e /var/tmp