Sonntag, 14. Februar 2010

Mit malloc_debug auf Bugjagd

Michael Lotz hat sich mal hingesetzt und ausführlich beschrieben, wie man mit malloc_debug Speicher-Bugs jagt. Jede Anwendung lässt sich mit dem Debug Heap starten, indem man sie vom Terminal aus mit einer speziellen Umgebungsvariablen aufruft:

LD_PRELOAD=libroot_debug.so dieAnwendung

Das Syslog enthält dadurch hilfreiche Informationen, die sich verfolgen lassen mittels:

tail -F /var/log/syslog

In seinem Artikel gibt Michael zu einer Reihe üblicher Bugs Code-Beispiele, woran man sie erkennt, und Tips zur Vermeidung. Da ich keine Ahnung von deren deutscher Bezeichnung habe, hier die Liste der besprochenen Bugs im Original...:

  • Using Uninitialized Memory
  • Using Already Freed Memory
  • Double Free
  • Misaligned Free / Free of Unallocated Memory
  • Overwriting Memory Past the Allocation
Daneben wird noch auf fortgeschrittene malloc_debug Features hingewiesen, die allerdings entsprechende minimale Änderungen im Sourcecode und bei dessen Linken erfordern:
  • Interval Based and Manual Wall Checking
  • Paranoid and Manual Validation
  • Dumping Heap and Allocation Info
Ein Spitzenartikel, den sich jeder Entwickler, und wer es werden will, in seine Bookmark Sammlung aufnehmen sollte!

Keine Kommentare:

Kommentar veröffentlichen