Re: Fehler in C-Programmen finden

Bernhard Walle <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
* Manfred Rebentisch <[email protected]> [2007-02-22 21:25]:
> 
> Bitte nehmt das Beispiel nicht so wörtlich. Ich habe komplexe Beispiele, ist 
> aber das gleiche Prinzip: sub kann NULL sein, wenn z.B. option 0 ist - und 
> das darf nicht sein.
> Man könnte natürlich richtig programmieren und ein "if(sub)" vor die printf 
> Anweisung stellen. Aber es geht mir darum, solche Fälle, die zur Laufzeit mit 
> einem Crash enden (außer bei printf), zu finden.

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.

Gute statische Analysetools kenne ich jetzt keine. Also Tools die
Programmierfehler schon beim Kompilieren erkennen. Außer eben die
Warnungen vom gcc.


Gruß,
Bernhard
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFF3gm1iGU2lt2vZFQRAj7/AKCAth1OIXLAF302DaFd1taHxzs6awCfdDi7
XGOLqvuruF3+WIFz2lhlzsM=
=uG4R
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.