Hallo Leute,
heute komme ich mal mit einem sehr speziellen Problem ins Forum:
Meine Software stürzt regelmäßig nach etwa 4-5 Stunden Dauerbetrieb mit Segmentation Faults an Speicheranforderungen bei String-Operationen (Standard C++ Library Klasse string) ab. Meist ist dies bei einem append der Fall oder wenn aus einem stringstream per .str() ein string ausgelesen werden soll. (sagt zumindest der Debugger, der dann an der Stelle stehen bleibt)
Laut free ist beim Absturz noch genug Speicher vorhanden, es ist also kein verkapptes "Out of memory". (So lange der Debugger den Prozess noch hält, ist der Speicher ja noch nicht freigegeben, oder?).
Ich nutze den gcc 4.5.1 für SUSE Linux, (nur zur Info, falls die Implementierung der String-Klasse relevant ist, was ich allerdings bezweifele. Warum sollte die String Klasse gerade bei mir solche Probleme machen?)
Die Frage ist nun, wie debuggt man so einen Fehler? Ich hab schon mal ein Tool zur statischen Code-Analyse drübergejagt (Klocwork), der mir hier aber auch keine Hilfe geben kann. Ich kann auch nicht tiefer debuggen als mein append-Aufruf, um da Dinge nachzusehen, z.B. ob der String, an den angehängt werden soll, selbst schon irgendwie korrumpiert ist. Ich bin da ratlos und wollte daher mal nachfragen, ob mir jemand dabei helfen kann, wie ich an die Sache rangehen soll.
Gruß
Martin
heute komme ich mal mit einem sehr speziellen Problem ins Forum:
Meine Software stürzt regelmäßig nach etwa 4-5 Stunden Dauerbetrieb mit Segmentation Faults an Speicheranforderungen bei String-Operationen (Standard C++ Library Klasse string) ab. Meist ist dies bei einem append der Fall oder wenn aus einem stringstream per .str() ein string ausgelesen werden soll. (sagt zumindest der Debugger, der dann an der Stelle stehen bleibt)
Laut free ist beim Absturz noch genug Speicher vorhanden, es ist also kein verkapptes "Out of memory". (So lange der Debugger den Prozess noch hält, ist der Speicher ja noch nicht freigegeben, oder?).
Ich nutze den gcc 4.5.1 für SUSE Linux, (nur zur Info, falls die Implementierung der String-Klasse relevant ist, was ich allerdings bezweifele. Warum sollte die String Klasse gerade bei mir solche Probleme machen?)
Die Frage ist nun, wie debuggt man so einen Fehler? Ich hab schon mal ein Tool zur statischen Code-Analyse drübergejagt (Klocwork), der mir hier aber auch keine Hilfe geben kann. Ich kann auch nicht tiefer debuggen als mein append-Aufruf, um da Dinge nachzusehen, z.B. ob der String, an den angehängt werden soll, selbst schon irgendwie korrumpiert ist. Ich bin da ratlos und wollte daher mal nachfragen, ob mir jemand dabei helfen kann, wie ich an die Sache rangehen soll.
Gruß
Martin
Comment