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
- Interval Based and Manual Wall Checking
- Paranoid and Manual Validation
- Dumping Heap and Allocation Info
Keine Kommentare:
Kommentar veröffentlichen