Dieser Artikel ist gültig für die MLD-Versionen 3.0.1.1 und 3.0.3
Bei einem Absturz des VDR werden zusätzliche Informationen benötigt, um die Ursache für den Absturz ermitteln zu können. Ein Absturz des VDR äußert sich durch eine oder mehrere Zeilen in der Logdatei /var/log/messages oder /etc/log/sysinit mit dem Begriff “Segfault” - z.B.:
Apr 30 20:55:07 (MLD) user.info kernel: vdr[[10755]]: segfault at c ip 080df988 sp a91f123c error 4 in vdr[[8048000+18b000]]
Bislang war es sehr aufwändig, einen Backtrace zu erstellen. Man benötigte eine Entwicklungsumgebung und musste den VDR unter Beibehaltung der Debugsymbole neu kompilieren. Hatte man dann die core-Datei vom Zielsystem, musste diese zurück auf die Entwicklungsumgebung und ausgewertet werden.
Inzwischen gibt es ein Addon mit dem Namen gdb, dass direkt den Backtrace auf dem Zielsystem erstellen kann. Es wird über das Webinterface (Addon/System) installiert. Auf der Konsole ist der Befehl
gdbmld coredump [Enter]
einzugeben. Er bewirkt, dass der VDR gestoppt und beim Absturz ein Coredump erstellt wird (ulimit -c unlimited). Anschließend wird der VDR gestartet. Nun muss versucht werden, den Absturz des VDR zu reproduzieren.
Ist der VDR mit einem Segfault abgestürzt, wird im Verzeichnis /root eine Datei mit dem Namen core erstellt. Sie war bei mir ca. 240 MB groß. Wird ein Coredump benötigt, ohne dass der VDR mit einem Segfault abstürzt, kann dieser mit dem Befehl
killall -SIGSEGV vdr
erzwungen werden.
Diese Datei wird mit dem Befehl
gdbmld debug [Enter]
ausgewertet.
Um einen kompletten Backtrace zu bekommen geben Sie folgenden Befehl in der “GDB Konsole” ab:
bt [Enter]
Die Auswertung ist dann im Forum zu posten oder an den Entwickler zu schicken.