C/C++ und Debugging
Angelegt von Andreas Steinel
Da ich seit einigen Wochen wieder etwas in die C/C++-Programmierung unter Linux/FreeBSD eingestiegen bin traf mich wiedereinmal der Schlag – oder besser – der SegFault. Einige Interessante Links zu Programmen, Tipps und Erkenntnisse im Überblick:
- Linux und FreeBSD lassen Threads unterschiedlich abstürzen: FreeBSD killt den ganzen Prozess, Linux hingegen nur den Thread. Somit kann man prima den Mutterthread aushungern lassen, wenn er auf den Thread wartet.
- Man sollte immer
assert
verwenden um Constraints zu prüfen, das erspart eine Menge Debugarbeit const
ist immer dein Freund (weiterlesen)- Memory Leaks kann man prima mit valgrind aufspüren, man muss sie dann nurnoch verstehen :-p
- An Codingstandards sollte man sich halten um einem selbst und vorallem anderen (auch dem älteren ich) das Leben nicht unnötig schwer zu machen.
- Ein Blick in die C++-Programming-FAQ ist oft hilfreich.
- Ein Blick in ein C++-Buch eröffnet einen immer wieder neue Welten – valgrind dankt – denn mit
new []
instanzierte Objekte wollen mitdelete []
gelöscht werden. - Es gibt nix schöneres als ein
abort
mitglibc-error
mit Stack Corruption undgdb
kannt nicht mehr weiterhelfen (Hier hilft eigentlich immer valgrind) printf
’s Parameter auf einen Blick