Wie benötigte Libraries erkennen

  • Hi Alle,


    ich hoffe das ist keine zu blöde Frage, aber ich verzeifele immer wieder da drann.


    Wie kann ich in erfahrung bringen welche Libraries ein Programm benötigt, zusätzlich zu dennen die ich per ldd abfragen kann? Ich meine Also Libraries die nicht fest verlinkt sind, sondern erst zur Laufzeit geladen werden.
    Wie bekomme ich also heraus, welche library ein Programm nicht laden konnte, und wegen der es abbricht?


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Zitat

    Original von clausmuus
    Ich meine Also Libraries die nicht fest verlinkt sind, sondern erst zur Laufzeit geladen werden.


    ldd sollte afaik genau diese libs anzeigen ...

    Gruß


    sdu

    *******************************************************************
    gen2vdr 2.0
    TT1.3, Skystar 2.6c, activy300, STBs AVBoard
    *******************************************************************

  • Zum Bleistift:


    Code
    root@woody-dev:/usr/local/src/vdr/PLUGINS/lib# ldd libvdr-dvd.so.1.4.0
            libdvdnav.so.4 => /usr/local/lib/libdvdnav.so.4 (0x4002a000)
            libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40056000)
            libm.so.6 => /lib/libm.so.6 (0x400a0000)
            libc.so.6 => /lib/libc.so.6 (0x400c1000)
            libdl.so.2 => /lib/libdl.so.2 (0x401de000)
            libpthread.so.0 => /lib/libpthread.so.0 (0x401e1000)
            /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

    Streamingclient 1:
    [-] RaspiVDR MLD 5.x an Panasonic TV mit CEC :D


    Streamingclient 2:
    [-] RaspiVDR MLD 5.x - Samsung TV mit CEC


    Streamingserver:
    [---] Proxmox Server PVE7
    [- ] MLD 5.x Server - OctopusNet 4 Tuner

  • strace sollte helfen, auch die per dlfcn geladenen Bibliotheken zu bekommen.


    Die Ausgabe sollte aber gefiltert werden "open" bzw. ".so" könnten mehr überblick verschaffen.

  • Danke,


    ich hatte gehofft das es noch ne schönere Lösung als strace gibt. Selbst gefiltert kann das recht mühselig sein, da es programme gibt, die nicht alle Libs benötigen, die sie versuchen zu laden, sondern teilweise nach alternativen suchen. Dann können schnell mal 100 fehlgeschlagene open zusammen kommen. bevor einer erfogreich ist :(


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Oder ne andere Vorgehensweise:
    Wenn ich nen System habe auf dem das Programm funktioniert, wie kann ich in Erfahrung bringen, welche Libs zur Laufzeit alle erfolgreich geladen wurden? Auch wieder nur mit strace?


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • strace analysiert ja das binary zur runtime. ldd löst verlinkungen auf gegen vorhandene libarys außerhalb der runtime.

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

  • Hi,


    ok, mit nen paar ausgewählten greps, komme ich durchaus weiter, nur habe ich schon das nächste Problem.
    Es schein so, als würde strace beim starten von VDR lediglich die erste Instanz des VDR analysieren, also nicht die Plugins :( Habt Ihr auch hierfür ne Lösung parat?


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Zitat

    Original von clausmuus
    Hi,


    ok, mit nen paar ausgewählten greps, komme ich durchaus weiter, nur habe ich schon das nächste Problem.
    Es schein so, als würde strace beim starten von VDR lediglich die erste Instanz des VDR analysieren, also nicht die Plugins :( Habt Ihr auch hierfür ne Lösung parat?


    Claus


    Evtl. hilft die Option -f (Follow Forks) dabei? ;)


    cu
    Mar(Mahlzeit)kus

  • lsof | grep "REG" | grep <programnamen>


    z.b.


    sendmail 29245 root txt REG 8,3 748296 1582147 /usr/sbin/sendmail.sendmail
    sendmail 29245 root mem REG 8,3 105080 7684327 /lib64/ld-2.3.4.so
    sendmail 29245 root mem REG 8,3 244320 7684337 /lib64/libssl.so.0.9.7a
    sendmail 29245 root mem REG 8,3 1230168 7684336 /lib64/libcrypto.so.0.9.7a
    sendmail 29245 root mem REG 8,3 91412 7684100 /lib64/libresolv-2.3.4.so
    sendmail 29245 root mem REG 8,3 30070 7684344 /lib64/libcrypt-2.3.4.so
    sendmail 29245 root mem REG 8,3 107327 7684338 /lib64/libnsl-2.3.4.so
    sendmail 29245 root mem REG 8,3 35176 1576373 /usr/lib64/libwrap.so.0.7.6
    sendmail 29245 root mem REG 8,3 17264 1578077 /usr/lib64/libhesiod.so.0
    sendmail 29245 root mem REG 8,3 915592 7684334 /lib64/tls/libdb-4.2.so
    sendmail 29245 root mem REG 8,3 97424 1588470 /usr/lib64/libsasl2.so.2.0.19
    sendmail 29245 root mem REG 8,3 224104 2261369 /usr/lib64/libldap-2.2.so.7.0.6
    sendmail 29245 root mem REG 8,3 60752 1582611 /usr/lib64/liblber-2.2.so.7.0.6
    sendmail 29245 root mem REG 8,3 1493186 7684328 /lib64/tls/libc-2.3.4.so
    sendmail 29245 root mem REG 8,3 93832 2261338 /usr/lib64/libgssapi_krb5.so.2.2
    sendmail 29245 root mem REG 8,3 464040 2261337 /usr/lib64/libkrb5.so.3.2
    sendmail 29245 root mem REG 8,3 10384 7684335 /lib64/libcom_err.so.2.1
    sendmail 29245 root mem REG 8,3 145456 2261336 /usr/lib64/libk5crypto.so.3.0
    sendmail 29245 root mem REG 8,3 17943 7684330 /lib64/libdl-2.3.4.so
    sendmail 29245 root mem REG 8,3 79336 2261330 /usr/lib64/libz.so.1.2.1.2
    sendmail 29245 root mem REG 8,3 106203 7684331 /lib64/tls/libpthread-2.3.4.so
    sendmail 29245 root mem REG 8,3 56902 7684126 /lib64/libnss_files-2.3.4.so
    sendmail 29245 root mem REG 8,3 827752 1671360 /usr/lib64/sasl2/libsasldb.so.2.0.19
    sendmail 29245 root mem REG 8,3 15960 1671356 /usr/lib64/sasl2/libanonymous.so.2.0.19
    sendmail 29245 root mem REG 8,3 46360 1671392 /usr/lib64/sasl2/libdigestmd5.so.2.0.19
    sendmail 29245 root mem REG 8,3 19216 1671388 /usr/lib64/sasl2/libcrammd5.so.2.0.19
    sendmail 29245 root mem REG 8,3 16560 1674298 /usr/lib64/sasl2/liblogin.so.2.0.19
    sendmail 29245 root mem REG 8,3 16528 1674302 /usr/lib64/sasl2/libplain.so.2.0.19



    -- randy

  • denn muss ich mir merken ^^

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!