Forum: PC-Programmierung Linux core dump analysieren mit GDB


von Torben (Gast)


Lesenswert?

Hallo, ich hab ein Embedded Gerät mit Linux, wo Core-Dumps aktiviert 
ist. Ich kann auf dem Gerät kein GDB installieren, deshalb wollte ich 
die Core-Dumps gerne auf einen anderen PC installieren und analysieren.

Kann ich die Dateien einfach kopieren und auf dem anderen PC mit GDB 
prüfen oder muss es wirklich auf dem Gerät sein?

von ssda (Gast)


Lesenswert?

>Ich kann auf dem Gerät kein GDB installieren

Aber per JTAG Adapter zugreifen?
Oder per embedded GDB-Server?

>Kann ich die Dateien einfach kopieren und auf dem anderen PC mit GDB
>prüfen oder muss es wirklich auf dem Gerät sein?

Kommt auf das Format des Core Dumps an...
Wie wir der überhaupt erzeugt?
Von einem Exception-Handler?

Was für ein OS hast Du auf dem Brett überhaupt?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Versuchs doch einfach mit dem passenden Cross-Debugger (Host = "PC", 
Target = "Embedded Gerät").

Viel mehr als PC, Speicherinhalt, incl. Stack und  evtl. Call-Chain ist 
in einem post-mortem Dump eh nicht drinne.

von ssda (Gast)


Lesenswert?

Vielleicht kannst Du Dir auch da Anregungen holen:

https://github.com/adamgreen/CrashDebug

von Torben (Gast)


Lesenswert?

>Aber per JTAG Adapter zugreifen?
>Oder per embedded GDB-Server?

Gibt es nicht oder ich hab kein Zugriff darauf.

>Kommt auf das Format des Core Dumps an...
>Wie wir der überhaupt erzeugt?
>Von einem Exception-Handler?

Keine Ahnung, ich sehe nur im Ordner /var/core die Dumps, welche ich 
gerne mittels GDB mir anschauen möchte um einen Fehler zufinden.

>Was für ein OS hast Du auf dem Brett überhaupt?

Linux Yocto

Wie gesagt leider kann ich nix auf dem Gerät installieren, sondern würde 
es gerne Offline auf einem anderen PC analysieren, wenn ich eure 
Information richtig interpretiere, dann ist es nicht möglich, oder?

von imonbln (Gast)


Lesenswert?

Torben schrieb:
> Linux Yocto

Yocto ist ein Buildsystem und keine Prozessor Architektur

Was du brauchst ist ein (cross)gdb der mit deiner Zielplatform (arm, 
mips oder was immer das ist) klar kommt.

>
> Wie gesagt leider kann ich nix auf dem Gerät installieren, sondern würde
> es gerne Offline auf einem anderen PC analysieren, wenn ich eure
> Information richtig interpretiere, dann ist es nicht möglich, oder?

sieh mal nach ob vielleicht ein gdb-server installiert ist, wenn ja 
kannst du dich von PC mit den gdb an den gdb-server connecten und von 
dort debuggen, wenn nicht Coredump auf den PC kopieren und dann mit dem 
Crossgdb untersuchen.
btw. wenn du das Linux mit Yocto gebaut hast, warum kannst du dann 
nichts installieren? Ich würde einfach ein Image bauen welches das 
recipe für denn gdb aktiviert  hat und so den coredump untersuchen.
Manchmal reicht es auch schon den Coredump durch strings zu jagen um 
eine erste Idee zu bekommen, viele gleiche Strings sind zum Beispiel 
meistens ein memleak...

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Ich glaube du suchst nach gdb-multiarch.

von Torben (Gast)


Lesenswert?

>btw. wenn du das Linux mit Yocto gebaut hast, warum kannst du dann
>nichts installieren?

Ich hab es nicht gebaut und kein auch nicht die Applikationen bestimmen, 
welche auf dem System sind.

Mit euren Antworten hab ich ein paar Ideen die verfolgt werden können.
Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.