Debug core-Datei, die ohne Symbole

Ich habe eine C-Anwendung, die wir bereitgestellt haben, um die Kunden vor Ort. Es wurde kompiliert und läuft auf HP-UX. Der Benutzer hat berichtet, crash-und wir haben gewonnen ein core dump. So weit, ich habe nicht in der Lage zu duplizieren die crash im Haus.

Als würden Sie Ahnen, den die core-Datei/bereitgestellte ausführbare ist völlig frei von jeglicher Art von Symbolen. Wenn ich laden Sie es in gdb, und machen Sie einen bt, die beste, die ich bekomme, ist diese:

(gdb) bt
#0  0xc0199470 in ?? ()

Ich tun kann, "strings core" auf die Datei, aber mein Verständnis ist, dass alles, was ich bekommen es ist alle strings in der ausführbaren Datei, so scheint es, semi-unmöglich, auf die Spur von allem was dabei.

Habe ich eine debug-version (kompiliert mit -g) der EXE-Datei, die ist leider ein paar Monate neuer als die version freigegeben. Wenn ich versuche, starten Sie gdb mit diesem hub, ich sehe dies:

warning: exec file is newer than core file.
Core was generated by `program_name'.
Program terminated with signal 11, Segmentation fault.
__dld_list is not valid according to __dld_flags.

#0  0xc0199470 in ?? ()
(gdb) bt
#0  0xc0199470 in ?? ()

Zwar wäre es möglich eine debug-version kompilieren und installieren Sie es auf der Kunden-Website, und warten Sie dann für ein weiteres crash, wäre es relativ schwierig und nicht wünschenswert für eine Reihe von Gründen.

Ich bin sehr vertraut mit dem code, und haben eine relativ gute Vorstellung davon, wo im code es abstürzt, ausgehend von den Kunden-Fehlerbericht.

Gibt es eine Möglichkeit, dass ich Lesen können, keine weiteren Informationen von dieser core-dump? Über strings oder einem anderen debugger oder so was? Danke.

InformationsquelleAutor der Frage Morinar | 2009-06-26

Schreibe einen Kommentar