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


'Wie werde ich Unix-Guru' als Buch bestellen
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

 
Galileo 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 »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press 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.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de