[gelöst] Plugins debuggen

  • Hi,

    Kann mir jemand erklären, wie ich mit dem gdb VDR Plugins debuggen kann?

    Den VDR Selber mit dem gdb zu untersuchen ist kein Problem. Bei den Plugins weiß ich allerdings nicht wie das geht. Wenn ich z.B. den VDR starte und anschließend den gdb unter Angabe des Verzeichnisses der VDR Sourcen da drauf schalte, kann ich im VDR selbst Brakepoints setzen und mir im gdb die VDr Sourcen anzeigen lasen. Für die Plugins geht das jedoch nicht. Der gdb scheint von den Plugins nichts zu wissen. Wie kann ich ihm diese bekannt machen?


    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

  • Soweit ich das verstehe liegt das daran, dass die Plugins dynamisch geladen werden. Du kannst Symbole für Shared Libraries nachträglich mit dem Befehl sharedlibrary DATEINAME laden. Oder dich erst mit gdb an den VDR attachen, wenn der bereits die Plugins geladen hast, dann solltest du die Plugins mit info sharedlibrary sehen können.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 () aus folgendem Grund: Es geht auch einfacher.

  • Hi,

    Danke schon mal für die Antwort. Da ich den gdb zur Laufzeit des VDR attache, listet mit info sharedlibrary auch das Plugin mit auf.

    Aber z.B. ein "list" findet die Sourcen nicht:

    Code
    (gdb) list /usr/src/vdr/PLUGINS/src/softhddevice/softhddevice.cpp:0
    No source file named /usr/src/vdr/PLUGINS/src/softhddevice/softhddevice.cpp.

    Bei einer VDR Source hingegen geht das:

    Vorhanden sind die Plugin Sourcen am genannten Ort:

    Code
    $> ls /usr/src/vdr/PLUGINS/src/softhddevice/V.cpp 
    /usr/src/vdr/PLUGINS/src/softhddevice/softhddevice.cpp

    Wie erkläre ich jetzt also dem gdb, dass die Plugin Sourcen mit dazu gehören und er die verwenden soll?

    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

    Einmal editiert, zuletzt von clausmuus ()

  • Ne, das war nen Kopierfehler. Hab's ober korrigiert.


    Ich hab aber inzwischen herausgefunden wo der Haken war. Es muss als Quelle der Sourcen nicht der Ordner des VDR sonder der des Plugins angegeben werden. Und obendrein ist ein anzeigen der Sourcen erst möglich, nachdem der VDR das Plugin geladen hat.

    Code
    gdb --directory=/usr/src/vdr/PLUGINS/src/softhddevice

    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

Jetzt mitmachen!

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