Rheinwerk Computing < openbook >
Rheinwerk Computing - Bücher zur Programmierung und Softwareentwicklung


Wie werde ich Unix-Guru
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Rheinwerk Computing / Openbook / "Wie werde ich UNIX-Guru ?"
« Systemaufrufe verfolgen: strace und Analysewerkzeuge Versionsverwaltung »

Unterabschnitte
  • Die Bibliothek Electric Fence
  • Dmalloc und LeakTracer

Speicherlecks und -überläufe

Fehler in der Speicherverwaltung sind schwer zu finden. Das Phänomen eines »Speicherlecks« bedeutet, dass Speicher angefordert wird, aber nicht mehr freigegeben wird. So ein Fehler ist bei manchen einfachen Anwendungsprogrammen fast kein Problem. Kaum jemand würde es je bemerken. Läuft aber das Programm als Dämon auf einer Maschine, die vielleicht monatelang ohne Unterbrechung läuft, entzieht das Programm auf lange Sicht allen anderen Programmen den Speicher und die Maschine wird immer langsamer.

Ein anderes Problem ist der Zugriff über die Speicherränder. Wurde eine Zeichenkette von 120 Byte Länge in einen Speicher kopiert, der nur eine Länge von 100 Byte hat, befinden sich 20 Byte in Speicherbereichen, wo sie nichts verloren haben und ggf. andere Variablen überschreiben. Man spricht hier vom Buffer Overrun. Da man nie weiß, welche Variablen verändert wurden und an welcher Stelle im Programm diese verwendet werden, kommt ein Kollaps fast immer überraschend. Auch die Wirkung ist schwer vorhersehbar, da sich nicht abschätzen lässt, welche Daten zerstört werden.

Die Bibliothek Electric Fence

Electric Fence (übersetzt etwa Elektrozaun) überprüft, ob die Grenzen von Puffern überschritten werden und ob Speicherbereiche verwendet werden, die in der Zwischenzeit wieder frei gegeben wurden.

Electric Fence ist eine Bibliothek, die beim Generieren des Programmes hinzu gebunden wird und sich an die Stelle der Funktionen setzt, die normalerweise die Speicherverwaltung durchführen. Der einzige Unterschied zur normalen Entwicklung ist also das Hinzubinden der Bibliothek.

cc -o fehler fehler.c -lefence

Das Programm wird danach aus einem Debugger gestartet. Bei erkannten Verletzungen wird ein Signal ausgelöst, das einen Zusammenbruch auslöst. Der Debugger kann dann leicht mit einem entsprechenden Kommanodo (where beim gdb) feststellen, wo dieser Fehler aufgetreten ist.

Quelle: http://perens.com/FreeSoftware

Dmalloc und LeakTracer

Auch für die Erkennung von Speicherlecks gibt es Programmierhilfen. Man findet sie im Internet, indem man in den Suchmaschinen nach Begriffen wie »memory leak« sucht. Die Werkzeuge arbeiten normalerweise als Bibliotheken, die die normalen Schnittstellen für das Anfordern und Freigeben von Speicher anbieten. Dabei protokollieren sie, ob alle angeforderten Speicherbereiche auch korrekt wieder freigegeben werden.

Hier sind zwei Pakete exemplarisch genannt. dmalloc ist ein Tool für C-Programme, die ihren Speicher mit Hilfe der Funktion malloc() anfordern und mit der Funktion free() freigeben, bzw. freigeben sollten. Der LeakTracer ist für die C++-Programmierer interessanter, da er die Aufrufe new() und delete() kontrolliert.

Beide Programme sind kostenlos im Web zu bekommen. Quelle:

http://dmalloc.com
http://www.andreasen.org/LeakTracer/



« Systemaufrufe verfolgen: strace und | Analysewerkzeuge | Versionsverwaltung »
 
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 UNIX/Linux

Ubuntu 14.04 LTS

Linux Handbuch

Linux-Server

Raspberry Pi

Ubuntu Server
 Shopping
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info



Copyright © Rheinwerk Verlag GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern