Howto: Rausfinden welches Plugin den VDR abstürzen lies

  • Ich habe mir mal Gedanken gemacht wie das runvdr script erkennen kann welches Plugin abgestürzt ist und wie man es beim nächsten Start deaktivieren kann.
    Somit verhindert man die bekannte start-schleife.


    Dazu muss vdr mit -g übersetzt sein, was es per default auch ist.


    Als erstes muss in das runvdr ein

    Code
    1. ulimit -c unlimited


    mit rein. Das muss nur einmal nach dem booten gemacht werden.
    Somit wird ein coredump beim Absturz von VDR erzeugt.


    Mit folgendem Befehl kann der coredump dann ausgewertet werden.

    Code
    1. gdb --core core --exec vdr --batch -ex bt


    Da mich ja erst mal nur interessiert welches Plugin den Fehler verursacht hat extrahiere ich den Pluginnamen:

    Code
    1. gdb --core core --exec vdr --batch -ex bt 2>&1 | grep cPlugin | tail -1 | sed "s/.*cPlugin\(.*\)::.*/\1/g"


    Somit habe ich den Namen des Plugin welcher den Absturz verursacht hat und kann dieses gegebenenfalls beim nächsten Start deaktivieren.





    Ein netter Tip ist es auch die Coredump zu sammeln.
    Ich mache es so:

    Code
    1. echo "/home/vdr/coredumps/core.%e.%p.%t" > /proc/sys/kernel/core_pattern


    Dann landen die coredumps alle bei mir im Homeverzeichniss mit einem eindeutigen Namen.
    Für Distri Entwickler ist das eine echte Hilfe wenn man diese Coredumps dann an die Entwickler schickt.

  • Quote

    Original von decembersoul
    Ein netter Tip ist es auch die Codedump zu sammeln.
    Ich mache es so:

    Code
    1. echo "/home/vdr/coredumps/core.%e.%p.%t" > /proc/sys/kernel/core_pattern


    Dann landen die coredumps alle bei mir im Homeverzeichniss mit einem eindeutigen Namen.
    Für Distri Entwickler ist das eine echte Hilfe wenn man diese Coredumps dann an die Entwickler schickt.


    :arme nach der Info such ich schon bestimmt seit einem halben Jahr, ich war nicht mal sicher dass das _überhaupt_ geht - VIELEN DANK!
    Wo ist denn das dokumentiert?

  • google man nach "/proc/sys/kernel/core_pattern"
    So habe ich es zumindest gefunden.

  • Mal ein richtig gutes und vor allem nahezu zeitloses Howto.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Kann mich gda nur anschliessen.