Moin Matjhas,
$ gdb ./dein_programm
Hiermit startest du das Programm im GNU-Debugger. Darin gibst du nun „run“ ein und wartest auf den Segfault. Nun kannst du durch Eingabe von „bt“ (BackTrace) die letzten Schritte einsehen. Mit Hilfe von „up“ und „down“ kannst du dich durch den Stack navigieren und mit Hilfe von „display“ Inhalte von Variablen und dergleichen inspizieren.
Du kannst (wenn du kannst) nun den Code ändern und direkt aus dem GDB heraus „make“ aufrufen. Ein erneutes „run“ startet dann von vorn.
Selbst wenn du auf diese Weise den Fehler nicht selbst finden kannst, dürfte dies zumindest genug Information für den Entwickler sein.
... und ich sage ganz einfach "Allerherzlichsten Dank, Mathias!" Ich bin dem Fehler bereits auf der Spur.
... und als Nebeneffekt hab jetzt endlich mal gelernt, wie man (ansatzweise) mit gdb umgeht. Bisher hatte ich mit debuggern immer nur in IDE zu tun :-)
Gruss & Merci!
- Joerg