Nástroje na ladenie chýbajúcich/nesprávnych knižníc a divných kompilácií

ldd

Vypíše knižnice, ktoré daný fajl používa a cesty k nim.

# ldd /bin/bash
      libcurses.so.1 =>        /lib/libcurses.so.1
      libsocket.so.1 =>        /lib/libsocket.so.1
      libnsl.so.1 =>   /lib/libnsl.so.1
      libdl.so.1 =>    /lib/libdl.so.1
      libc.so.1 =>     /lib/libc.so.1
      libmp.so.2 =>    /lib/libmp.so.2
      libmd5.so.1 =>   /lib/libmd5.so.1
      libscf.so.1 =>   /lib/libscf.so.1
      libdoor.so.1 =>  /lib/libdoor.so.1
      libuutil.so.1 =>         /lib/libuutil.so.1
      libm.so.2 =>     /lib/libm.so.2

elfdump

Vypíše funkcie, ktoré volá daný súbor.

# elfdump /bin/bash
ELF Header
  ei_magic:   { 0x7f, E, L, F }
  ei_class:   ELFCLASS32          ei_data:      ELFDATA2MSB
  e_machine:  EM_SPARC            e_version:    EV_CURRENT
  e_type:     ET_EXEC
  e_flags:                     0
  e_entry:               0x23088  e_ehsize:     52  e_shstrndx:   21
  e_shoff:               0xb35bc  e_shentsize:  40  e_shnum:      23
  e_phoff:                  0x34  e_phentsize:  32  e_phnum:       6

Program Header[0]:
  p_vaddr:      0x10034         p_flags:    [ PF_X  PF_R ]
  p_paddr:      0               p_type:     [ PT_PHDR ]
  p_filesz:     0xc0            p_memsz:    0xc0
  p_offset:     0x34            p_align:    0
...

lari

Vypíše funkcie, ktoré volá daný súbor spolu s knižnicami, v ktorých ich hľadá.

# lari /bin/bash
[2:0]: BC[0x4]: /lib/libcurses.so.1
[2:0P]: BC[0x4]: /usr/bin/bash
[2:0]: calloc(): /lib/libc.so.1
[2:5EP]: calloc(): /usr/bin/bash
[2:0]: cfree(): /lib/libc.so.1
[2:0P]: cfree(): /usr/bin/bash
[2:0]: free(): /lib/libc.so.1
[2:11EP]: free(): /usr/bin/bash
[2:0]: getcwd(): /lib/libc.so.1
[2:0P]: getcwd(): /usr/bin/bash
[2:0]: getenv(): /lib/libc.so.1
[2:5EP]: getenv(): /usr/bin/bash
[2:0]: htonl(): /lib/libc.so.1
[2:3ES]: htonl(): /lib/libsocket.so.1
[2:0]: htons(): /lib/libc.so.1
[2:3ES]: htons(): /lib/libsocket.so.1
[2:0]: malloc(): /lib/libc.so.1
[2:8EP]: malloc(): /usr/bin/bash
[2:0]: memalign(): /lib/libc.so.1
[2:0P]: memalign(): /usr/bin/bash
[2:0]: ntohl(): /lib/libc.so.1
[2:2ES]: ntohl(): /lib/libsocket.so.1
[2:0]: ntohs(): /lib/libc.so.1
[2:2ES]: ntohs(): /lib/libsocket.so.1
[2:0]: PC[0x1]: /lib/libcurses.so.1
[2:0P]: PC[0x1]: /usr/bin/bash
[2:0]: putenv(): /lib/libc.so.1
[2:1EP]: putenv(): /usr/bin/bash
[2:0]: realloc(): /lib/libc.so.1
[2:5EP]: realloc(): /usr/bin/bash
[2:0]: setenv(): /lib/libc.so.1
[2:0P]: setenv(): /usr/bin/bash
[2:0]: unsetenv(): /lib/libc.so.1
[2:0P]: unsetenv(): /usr/bin/bash
[2:0]: UP[0x4]: /lib/libcurses.so.1
[2:0P]: UP[0x4]: /usr/bin/bash
[2:0]: valloc(): /lib/libc.so.1
[2:0P]: valloc(): /usr/bin/bash

S parametrom -a vypíše všetky funkcie, bez neho len zaujímavé informácie (funkcie nenájdené v knižniciach).

 
ladenie.txt · Last modified: 31.03.2010 17:51 (external edit)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki