Fehler in C-Programmen finden
Manfred Rebentisch <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | COMPARAT Software-Entwicklungs.-GmbH |
| Message-ID | <[email protected]> |
Hallo,
ich frage mich, wie man am bestimmte Programmierfehler findet.
Ich mache mal ein Beispiel:
int func( char* str, int option )
{
char* sub = NULL;
if( option & 2 ) {
sub = str;
}
printf("%s\n", sub);
return 0;
}
Wäre sub nicht initialisiert, würde der Compiler (gcc) eine Warnung
ausspucken. Aus bestimmten Gründen (die nicht aus diesem Beispiel erkenntlich
sind), soll sub aber mit NULL initialisiert sein.
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.
Am besten wäre eine Exception, die mir die Codezeile zeigt. Aber bei reinen
C-Libraries?
Wie würdet ihr das machen?
Grüße
Manfred
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]