Seite 1 von 1

[Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 13.05.2009, 13:59
von Halan
Hi,

ich möchte gerne für meinen Web-/Gameserver so was ähnliches wie die minidumps auf Windows haben. Auf Linux scheint das alles ein bisschen komplizierter. Ich muss wohl das core file meines Prozesses aufrufen aber wie tue ich das? Und wie werte ich es aus? Bin hier komplett auf Neuland. :D

Es gibt da zwar Projekte wie Google Breakpad aber das scheint mir nur eine Überkomplizierung da es auf Cross-Plattform-Benutzung ausgelegt ist und mein Server mit Linux ganz zufrieden wär.

schon mal liebe Grüße,
Halan

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 13.05.2009, 19:44
von Jörg
Na die core dumps kannst Du doch ganz einfach mit gdb debuggen.

>gdb a.out core.pid

Was hat denn nicht geklappt?

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 13.05.2009, 22:38
von Halan
Mir ist nicht ganz klar wo die liegen. Muss ich nicht erstmal irgend ne kernel flag setzten oder so damit dumps überhaupt erzeugt werden? Am besten im working directory und mir iwie die möglichkeit geben sie auch zu benennen usw.

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 14.05.2009, 09:06
von Jörg
Findest Du hier die Antwort : http://linux.die.net/man/5/core

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 14.05.2009, 18:41
von Halan
Irgendwie kann ich auf die Dateien nicht zugreifen selbst mit sudo nicht. Kann ich solche flags überhaupt ändern wenn das os läuft?

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 14.05.2009, 20:36
von Jörg
Jo dafuer sind sie ja da. Wenn du sie permanent aendern willst, dann musst Du das in Kombination mit sysctl machen (siehe man-page).
Bei mir (ubuntu 8.10) tut es ein einfaches
echo "core_%e" > /etc/sys/kernel/core_pattern
ausgefuehrt als root z.B.
Alternativ eben sysctl benutzen und in ein init-script eintragen, falls es boot-resistent sein soll.
Welche Distribution nimmst Du?

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 15.05.2009, 09:02
von kimmi
Ich habe das hier gefunden, vielleicht ist es ja nützlich. Ich konnte das dort beschriebene Vorgehen noch nicht testen, da mir hier ein Linux fehlt :? :
http://www.linuxforums.org/forum/linux- ... -dump.html

Gruß Kimmi

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 15.05.2009, 16:58
von Halan
ja kimmi das was du verlinkt hast ist ein bisschen was anderes will ja dass die coredumps immer bei nem crash erstellt werden net mitten in der ausführung.

sysctl scheint ja auch als C-Funktion vorzuliegen. Wär das beste wenn ich die gleich vom Code aus aufrufen könnte. Hab sowieso nen watcher-prozess der das machen könnte. Dieser soll bei jedem crash den er erkennt die coredumps und logfiles sichern damit ich sie später abrufen kann. Wär auch praktisch das ganze nur für einen User zu setzten oder halt nur für bestimmte programme. Damit nicht jeder scheiss rum dumpt ;)

Find leider nur ne anleitung für /sbin/sysctl nicht für sysctl.h. Vlt kann mir da noch jemand weiterhelfen.

Ich benutze als Linux-Anfänger (bin jetzt so 2 Jahre dabei) ganz unerwartet Ubuntu ;) Als Zielplatform wohl 9.10 oder 10.4.

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 15.05.2009, 17:37
von kimmi
Wenn du z.B. einen invaliden Zugriff hast, wird das foldgende Signal geschmissen: SIGSEGV -> Coredump wird erzeugt. Ist denke, das ist das, was du willst :).

Gruß Kimmi

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 15.05.2009, 18:27
von Halan
kimmi hat geschrieben:Wenn du z.B. einen invaliden Zugriff hast, wird das foldgende Signal geschmissen: SIGSEGV -> Coredump wird erzeugt. Ist denke, das ist das, was du willst :).

Gruß Kimmi
Danke aber soviel war mir schon klar :)
Was ich machen will ist im code festzulegen ob und wie die coredumps erzeugt werden. Viele Desktopsysteme erzeugen nämlich gar keine. Ich hätte aber gerne ein "core_%e" im working directory.

greetings,
Halan

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 15.05.2009, 18:36
von kimmi
Wenn ich das richtig verstanden habe, mußt du dafür ein ulimit -c unlimited absetzen. Dann sollte der Coredump im WorkingDirectory erscheinen. Oder renne ich gerade offene Tore bei dir ein und versteh dein Problem falsch?

Gruß Kimmi

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 03.08.2010, 21:11
von Halan
Hey,

wollte das Thema malwieder aufgreifen.

Wird "ulimit -c ulimited" scheint das richtige zu sein. Kann ich das auch vom Prozess aus aufrufen oder muss ich das Systemweit machen?

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Verfasst: 05.08.2010, 18:32
von kimmi
Mit dem system-call sollte das funktionieren. Aber vielleicht bietet die gdb-Lib da ja noch was geschickteres an.

Gruß Kimmi