Wir haben Prozesse in einer Mischung aus Python, Java und C ++ geschrieben, die von Zeit zu Zeit einen Core-Dump ausführen. Sie weisen nach Bedarf zur Laufzeit mehr Speicher in Blöcken zu und stürzen bekanntermaßen ab, wenn ihre Zuordnung über 4G liegt (ich denke, der Rückgabewert von malloc()
wird nicht überprüft).
Die erzeugten Core-Dumps sind laut GDB jedoch abgeschnitten - sie sind im Betriebssystem unbegrenzt groß und auf der Festplatte variieren sie zwischen 2 und 3,8 GB.
GDB stellt fest, dass die Größe nicht den Erwartungen entspricht (vermutlich einschließlich der fehlgeschlagenen Zuordnung?) Und gibt auf - aber bei 3,8 G Daten muss es sicherlich etwas Interessantes geben? Möglicherweise sogar den gesamten Stack, den ich für eine Rückverfolgung brauche!
Wie kann ich GDB davon überzeugen, es zumindest zu versuchen, oder gibt es ein alternatives Tool, das etwas aus einem abgeschnittenen Kern extrahieren kann?
Antworten:
Dieser Klappentext auf der Sun Studio 12-Website scheint zu implizieren, dass sie im Grunde genommen nutzlos sind.
Auszug - http://docs.oracle.com/cd/E19205-01/819-5257/blabs/index.htmlquelle