[0.6] gdb und backtrace

  • Servus,


    ich benutze noch die 0.6-Installation aus dem Ubuntu-Image mit der preseed-Datei.
    Da ich sporadisch segfaults habe, die von epg2vdr (aus dem http-branch) verursacht werden, wollte ich das mal debugggen.
    Lt. Handbuch für die 0.6 braucht man nur vdr-dbg zu installieren. Lt. horchi wird epg2vdr schon mit Debug-Symbolen gebaut, wenn man es per Hand macht.


    Nun hatte ich heute morgen auch zwei core-Dateien, aber einen segfault zu den beiden Zeitpunkten gab es nicht im log.


    Jetzt wollte ich einen Backtrace erzeugen.

    Code
    gdb vdr-dbg core.1273


    Liefert folgende Ausgabe:


    Hier fällt mir schon auf, dass dort steht "vdr-dbg: Datei oder Verzeichnis nicht gefunden.".
    Ein bt full liefert dann nur noch das:

    Code
    #0  0x00007f47d78b2cc9 in ?? ()
    No symbol table info available.
    #1  0x00007f47d78b60d8 in ?? ()
    No symbol table info available.
    #2  0x0000000000000020 in ?? ()
    No symbol table info available.
    #3  0x0000000000000000 in ?? ()
    No symbol table info available.
    (gdb)


    Jemand eine Idee? Beide cores wurden erzeugt, als sich der VDR ausgeschaltet hat. Im syslog ist aber kein Fehler zu finden.


    Markus

  • Oh danke Lars.
    Hatte den Aufruf noch aus der 0.5er-Doku genommen.
    Nun sieht es besser aus. Könnt ihr damit etwas anfangen?


    Der zweite ist etwas anders.


    Markus

  • Da löscht jemand Objekte, die noch in der Liste sind. Und wenn die Liste abgeräumt wird, dann versucht es auch, die Objekte zu löschen.
    Man darf Objekte, die man in eine cList<> gepackt hat, nicht selbst löschen. Und wenn doch, dann muss man sie manuell mit "DeleteObject == false" vorher aus der Liste nehmen.


    Lars.

  • Und nu? Wie geht es weiter? Wer ist der Übeltäter? Ein Plugin oder der VDR?
    Wie gesagt, yavdr-0.6 (auf stable)

  • Wenn es der vdr wäre, hätten vermutlich wesentlich mehr Leute dieses Problem.
    Ich würde auf epg2vdr tippen, weil es im Destruktor des EIT-Scanners passiert.


    Lars.

  • So. Jörg meint epg2vdr ist es nicht, da er nix mit cList im EIT Scanner macht.
    Welches Plugin könnte es denn noch sein? Oder sollte ich einfach mal zu allen die -dbg-Pakete installieren?

  • Vielleicht auch noch libc6-dbg

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Vielleicht auch noch libc6-dbg


    Erledigt.


    Beim installieren der dbg-Pakete ist mir bei 2 Plugins folgendes aufgefallen



    Sollte doch bestimmt nicht so sein, oder?


    Markus

  • Und sicherstellen, dass dein selbstgebautes Plugin gegen die richtigen vdr-Header gebaut wird.


    Öhm. Was gibt es da besonderes zu beachten?
    Selbst gebaut sind nur epg2vdr und scraper2vdr.
    Beides mit aus dem git geholt und mit make clean, make all und make install installiert.


    Markus

  • Sollte doch bestimmt nicht so sein, oder?

    Nein, da hat etwas in den control-Dateien nicht gepasst - neue Pakete sind unterwegs.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Moin.


    So, nun ist der BT auch etwas länger, für mich aber weiter unverständlich (nach der Installation der gesamten gdb-Pakete wurde der VDR aber noch nicht neu gestartet, da kommt heute sicherlich noch ein weiterer BT).
    Hoffe ihr könnt damit mehr anfangen.


    Markus

  • Passiert das beim Beenden des vdr oder mitten im Betrieb?


    Diesmal ist es die Liste der CA-Descriptors, die da beim Aufräumen ein Problem hat.


    Lars.

  • Werden vorher noch alle conf-Dateien (channels, setup, timer usw.) gespeichert?
    Sowas hab ich früher auch ab und zu mal beobachtet, da es aber quasi so spät, schon fast nach dem Beenden passiert ist (und in letzter Zeit gar nicht mehr), und es sehr schwer zu Debuggen ist und auch keinerlei Konsequenzen für mich hatte, hab ich es ad acta gelegt.


    Passiert es, wenn beim Beenden ein verschlüsselter Kanal empfangen wird? Passiert es auch, wenn ein freier Kanal empfangen wird?
    Passiert es ohne das Plugin?


    Lars.

  • So viele Fragen :)
    Zu den conf-Dateien ... ich denke schon, dass die gespeichert werden, konnte jedenfalls nichts ungewöhnliches feststellen.
    Ich schaue beim nächsten mal mit dem Zeitstempel des coredumps im syslog nach, wie spät es passiert.


    Gestern abend, beim Ausschalten lief der VDR auf einem freien Kanal. Aber ich werde es auch gerne mal ohne das Plugin probieren.


    Markus

Jetzt mitmachen!

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