Warum endet Mutt mit Segmentierungsfehler?

1495
hugemeow

Ich habe $ gedrückt, um die Mailbox zu synchronisieren, aber mutteinfach aufhören ... Tatsächlich wird die muttDosierung nicht jedes Mal beendet, wenn ich $ drücke, sie wird nur manchmal beendet. Wie kann ich herausfinden, warum das mutProgramm beendet wird? Ist das ein Fehler in `mutt '?

Die Fehlermeldung lautet:

Sorting mailbox... Segmentation fault 

Kann ich stracemit verwenden, muttwenn ich wissen möchte, was passiert? Oder gibt es Tools, mit denen Sie das Problem besser herausfinden können?

Im Moment habe ich auf eine Mail geantwortet, dann drücke ich $ und dann Segmentierungsfehler.

1
Dies ist sicherlich ein Fehler, Sie sollten herausfinden, ob es sich bei Mutt Upstream oder durch einen Patch aus Ihrer Distribution befindet. Versuchen Sie, die neueste Version von `mutt.org` zu kompilieren, und prüfen Sie, ob es dasselbe Problem gibt. Thor vor 11 Jahren 0

1 Antwort auf die Frage

5
Etan Reisner

strace könnte Ihnen etwas sagen, ist aber nicht das beste Werkzeug für den Job. Das richtige Werkzeug dafür ist gdb und ein Core-Dump.

Sie können mutt entweder direkt unter gdb ausführen ('gdb mutt', dann 'r' an der gdb-Eingabeaufforderung) oder Core Dumps in Ihrer Shell aktivieren und mutt normal ausführen. Es sollte eine Core-Dump-Datei generieren, die abstürzt und die dann analysiert wird gdb Sie sollten jedoch sicherstellen, dass Sie zuerst die Debugging-Symbole für Mutt installiert haben.

Weitere Informationen zur Verwendung von gdb und zum Analysieren von Core Dumps und Backtraces finden Sie an verschiedenen Stellen im Internet. Dies ist jedoch zu komplex, um sie hier gut zu erklären.

Ich installiere Mutt mit Yum auf Centos. Ich denke, Yum-Pakete enthalten kein Debug-Symbol. Soll ich also Mutt aus dem Quellcode bauen? hugemeow vor 11 Jahren 0
Möglicherweise gibt es ein mutt-debuginfo-Paket (oder ähnliches, das die Namenskonvention von RH-Derivaten verwendet), das die Debug-Symbole enthält, die Sie installieren können, anstatt es selbst erstellen zu müssen. Etan Reisner vor 11 Jahren 1