[Linux] Coredumps zu meinem Vorteil nutzen
-
- Beiträge: 73
- Registriert: 22.01.2005, 21:47
- Benutzertext: programmiersüchtig
- Echter Name: Kai Mast
- Wohnort: Freak City
- Kontaktdaten:
[Linux] Coredumps zu meinem Vorteil nutzen
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
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
Blog: http://mohoho.de
Re: [Linux] Coredumps zu meinem Vorteil nutzen
Na die core dumps kannst Du doch ganz einfach mit gdb debuggen.
>gdb a.out core.pid
Was hat denn nicht geklappt?
>gdb a.out core.pid
Was hat denn nicht geklappt?
-
- Beiträge: 73
- Registriert: 22.01.2005, 21:47
- Benutzertext: programmiersüchtig
- Echter Name: Kai Mast
- Wohnort: Freak City
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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.
Blog: http://mohoho.de
Re: [Linux] Coredumps zu meinem Vorteil nutzen
Findest Du hier die Antwort : http://linux.die.net/man/5/core
-
- Beiträge: 73
- Registriert: 22.01.2005, 21:47
- Benutzertext: programmiersüchtig
- Echter Name: Kai Mast
- Wohnort: Freak City
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
Irgendwie kann ich auf die Dateien nicht zugreifen selbst mit sudo nicht. Kann ich solche flags überhaupt ändern wenn das os läuft?
Blog: http://mohoho.de
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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?
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?
- kimmi
- Moderator
- Beiträge: 1412
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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
http://www.linuxforums.org/forum/linux- ... -dump.html
Gruß Kimmi
-
- Beiträge: 73
- Registriert: 22.01.2005, 21:47
- Benutzertext: programmiersüchtig
- Echter Name: Kai Mast
- Wohnort: Freak City
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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.
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.
Blog: http://mohoho.de
- kimmi
- Moderator
- Beiträge: 1412
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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
Gruß Kimmi
-
- Beiträge: 73
- Registriert: 22.01.2005, 21:47
- Benutzertext: programmiersüchtig
- Echter Name: Kai Mast
- Wohnort: Freak City
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
Danke aber soviel war mir schon klar :)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
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
Blog: http://mohoho.de
- kimmi
- Moderator
- Beiträge: 1412
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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
Gruß Kimmi
-
- Beiträge: 73
- Registriert: 22.01.2005, 21:47
- Benutzertext: programmiersüchtig
- Echter Name: Kai Mast
- Wohnort: Freak City
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
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?
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?
Blog: http://mohoho.de
- kimmi
- Moderator
- Beiträge: 1412
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [Linux] Coredumps zu meinem Vorteil nutzen
Mit dem system-call sollte das funktionieren. Aber vielleicht bietet die gdb-Lib da ja noch was geschickteres an.
Gruß Kimmi
Gruß Kimmi