[Linux] Coredumps zu meinem Vorteil nutzen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Halan
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

Beitrag 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
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag 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?
Halan
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

Beitrag 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.
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag von Jörg »

Findest Du hier die Antwort : http://linux.die.net/man/5/core
Halan
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

Beitrag 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?
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag 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?
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag 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
Halan
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

Beitrag 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.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag 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
Halan
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

Beitrag 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
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag 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
Halan
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

Beitrag 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?
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Linux] Coredumps zu meinem Vorteil nutzen

Beitrag von kimmi »

Mit dem system-call sollte das funktionieren. Aber vielleicht bietet die gdb-Lib da ja noch was geschickteres an.

Gruß Kimmi
Antworten