GNU/Linux >> Znalost Linux >  >> Linux

Proč nm nezobrazuje žádné symboly pro /lib/i386-linux-gnu/libc.so.6?

Pravděpodobně má odstraněné své běžné symboly a co zbylo, jsou dynamické symboly, které můžete získat pomocí nm -D .


@PSkocik na to odpověděl. Chci jen přidat další podrobnosti. V ELF existují dva druhy sekcí symbolů:.symtab a .dynsym (podrobnosti viz specifikace Linux Standard Base Core Specification, aka LSB_5.0.0). .symtab je pro krok propojení samotné sdílené knihovny. Po dokončení propojení se zobrazí .symtab sekce již není potřeba. .dynsym obsahuje důležité symboly, které by měl dynamický linker prohledávat za běhu. nm ve výchozím nastavení vypíše pouze symboly do .symtab sekce.

LSB_5.0.0 Section10.2.2.1, „ELF Section Types“, říká, že vyhovující sdílená knihovna by měla mít buď .symtab nebo .dynsym ale ne obojí. Jako součást knihovny ABI je knihovna libc odstraněna z .symtab být v souladu se specifikací.


Linux
  1. Proč nefunguje find -exec mv {} ./target/ +?

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. povolení odepřeno pro skladatele v /usr/local/bin/

  1. Kdy mám použít /dev/shm/ a kdy /tmp/?

  2. unix:///var/run/supervisor.sock žádný takový soubor

  3. Proč dávat věci jiné než /home do samostatného oddílu?

  1. Jak nastavit swapnost procesu pro linux?

  2. /sys/ dokumentace?

  3. Proč mají všechny adresáře /home, /usr, /var atd. stejné číslo inodu (2)?