Hallo, Am Donnerstag, 22. Februar 2007 22:23 schrieb Bernhard Walle:
Naja, wenn das Programm crashed kannst du ja einen Coredump erzeugen lassen (erst 'ulimit -c unlimited') und den dann mit gdb analysieren. Wenn du vorher das Programm mit Debuginformationen (-g) übersetzt hast, bekommst du damit die Codezeile.
Außerdem kannst du das Programm direkt im gdb ausführen. Und Tools wie 'valgrind' erleichtern das Finden von Fehlern in der Speicherverwaltung zur Laufzeit. Allerdings muss da natürlich auch der Fehler angesprungen werden.
Nun, es handelt sich um Libraries, die von einem Apache-Modul verwendet werden. Ausführung mit gdb ist aber auch deshalb mühsam, weil Fehler üblicherweise im Echtbetrieb auftreten und nicht beim Durchsteppen über 20000 Codezeilen. valgrind kenne ich nicht. Aber die Speicherverwaltung ist auch nicht das Problem, außer vielleicht noch im Shared-Memory-Bereich (aber da weiß ich, wie ich das angehe).
Gute statische Analysetools kenne ich jetzt keine. Also Tools die Programmierfehler schon beim Kompilieren erkennen. Außer eben die Warnungen vom gcc.
Ja, beim gcc fehlt mir eine Warnung wie "Variable wurde mit NULL initialisiert aber eventuell vor der Derefenzierung nicht auf einen vernünftigen Wert gesetzt" ;-) Grüße Manfred --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org