Debugging für Experten (Raspberry Pi, Linux, SymBox)

Hinweis: Diese Anleitung hilft nur bei Abstürzen oder hängenden PHP-Threads!
Wenn euer IP-Symcon also nicht ständig zufällig aus der Prozessliste verschwindet, ist diese Anleitung nicht für euch.

Erstellt bitte, sofern es nicht einen ähnlichen Backtrace gibt, ein neues Thema für den jeweiligen Fehler!

Zuallererst überprüfen, ob gdb installiert ist (SymBox Nutzer können diesen Teil überspringen. GDB ist vorinstalliert)


sudo apt-get install gdb

Danach noch Debug Infos für libC runterladen lassen…


sudo apt-get install libc-dbg

Option A: IP-Symcon direkt über den Debugger starten (notwendig, wenn beim Start Probleme auftreten)

Den IP-Symcon Dienst beenden. Hier die „harte“ Methode für alle Fälle.


sudo killall symcon [für Rasperry Pi, Ubuntu]
killall symcon [für SymBox]

IP-Symcon Dienst über den Debugger starten


sudo gdb /usr/bin/symcon [für Rasperry Pi, Ubuntu]
gdb /usr/share/symcon/symcon [für SymBox]

Nach ein paar Augenblicken sollte gdb alles geladen haben. Die letzte Zeile sollte mit (gdb) anfangen. Wir tippen „run“ ein und bestätigen mit Enter.


(gdb) run + ENTER

Auf dem Raspberry Pi kommen zwei SIGILL Fehler. Diese übergehen wird jeweils mit „c“ und Enter:


c + ENTER

Option B: Debugger zu einem laufendes IP-Symcon verbinden

Debugger zu einem laufenden IP-Symcon verbinden


sudo gdb --pid $(pidof symcon) [für Rasperry Pi, Ubuntu]
gdb --pid $(pidof symcon) [für SymBox]

Sobald alles geladen wurde einfach den Prozess weiter laufen lassen


c + ENTER

Weiter nachdem Option A/B ausgeführt wurde

Sollte nun ein Absturz stattfinden, so wird gdb automatisch stoppen und euch wieder mit der (gdb) Zeile begrüßen.
Diese Zeilen kopieren zum Absturz kopieren und dann noch folgendes ausführen, um die erweiterten Informationen zu sammeln.

Wir wollen nun alle Informationen automatisch in eine Textdatei schreiben lassen. Dazu folgende Befehle eingeben:


set logging on
set pagination off
thread apply all bt
set logging off
set pagination on


Er wird eine gdb.txt erstellt, welche Ihr bitte zusätzlich zu den eigentlichen gdb Zeilen an uns zusendet oder hier im Forum an den Beitrag hängt.

paresy

Ich habe dieses Thema ein wenig aufgeräumt, da die Abstürze soweit behoben sein sollten.

paresy