Schacher

Checker kann helfen, Fehler zu finden, dass Standardwerkzeuge nicht immer finden können.
Jetzt downloaden

Schacher Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Tristan Gingold
  • Website des Verlags:
  • http://www.gnu.org/software/checker/

Schacher Stichworte


Schacher Beschreibung

Checker kann helfen, Fehler zu finden, dass Standardwerkzeuge nicht immer finden können. Checker kann helfen, Fehler zu finden, dass Standardwerkzeuge nicht immer finden können. Das beste Beispiel ist Speicherlecks. Ein Speicherleck ist eine Speicherzone, die mit Malloc bereitgestellt wird, der nicht mehr verwendet wird. Der zugewiesene Speicher ist also verloren. Dies bedeutet, dass Ihr Programm mehr Speicher benötigt und langsamer läuft, da Ihr Betriebssystem möglicherweise beginnen muss. Es erkennt fehlerhafte Speicherzugriffe, wie z. Dies ist besonders nützlich für große Programme mit vielen Funktionen. Checker hält Bitmaps aufrecht, um den Status jedes Speichers zu verfolgen. Der Status kann beschreibbar, lesbar, beides oder keiner. Wenn der Speicher zugewiesen ist, wird der neue Speicher schreibgeschrieben: Sie dürfen es nicht lesen, da sie nicht initialisiert wurde. Aber wenn Sie an diesen neuen Block schreiben, werden diese Bytes lesbar und beschreibbar. Wenn der Block frei ist, werden die Bytes nicht lesbar und unüberwindlich. Rote Zonen sind nicht lesbarer und ungeschaltbarer Speicher, so dass jeder Zugriff auf eine rote Zone eine Warnung erzeugt. Example: Hier ist eine Bogus-Datei Beispiel.c: #include int main () {char * zone = malloc (20) ; char * ptr = null; int i; char c; c = Zone ; / * Fehler: Lese ein nicht initialisiertes char * / c = Zone ; / * Fehler: Lesen Sie vor der Zone * / Zone = ''; / * Fehler: Schreiben Sie nach der Zone * / * PTR = 2; / * Fehler: Verwenden Sie einen NULL-Zeiger, muss einen Core * /} erstellen, um dieses Beispiel mit dem Checker zusammenzustellen, einfach Checkergcc anstelle von GCC:% Checkergcc -o Beispiel Beispiel.c als nächstes, um das Beispiel auszuführen:% ./exampleeexecution produziert Diese Warnungen: Checker 0.9 (SPARC-Sun-Solaris2.5.1) Copyright (C) 1998 Tristan Gingold.Checker ist ein Speicherzugangsdetektor.Checker ist in der Hoffnung verteilt, dass es nützlich ist, jedoch ohne Garantie; ohne auch die implizite Garantie vonMaschinierbarkeit oder Fitness für einen bestimmten Zweck. Sehen Sie sich die gnugenale öffentliche Lizenz für mehr Details an PID: 04713): (RUH) Lesen Sie in einem Block nicht initialisierte Byte (s), wenn das 1 Byte (en) an Adresse 0x000398A1, in den Haufen (SBRK) .1 Byte in einen Block (Start: 0x398A0, Länge: 20, MDEC: 0x0). Der Block wurde zugeteilt von: pc = 0x00022f1c in chkr_malloc at ../stubs/stubs-malloc.c:51 pc = 0x000133c:51 pc = 0x000139c in main at ../example.c:7 PC = 0x000155F0 im Startup. ./config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * unbekannt * at * unbekannt *: 0Stack-Frames sind: PC = 0x000133F4 in der wichtigsten ../example.c:12 PC = 0x000155F0 im Startup. ./config/sparc/solaris2/startup.c:148 PC = 0x00013298 in * unbekannt * at * unbekannt *: 0From Checker (PID: 04713): (BVH) BLOCK BRINGS VERLETZUNGEN IM HEAD.Wenn 1 Byte (s) An der Adresse 0x0003989e, in dem Heap (SBRK) .2 Bytes vor einem Block (Start: 0x398A0, Länge: 20, MDEC: 0x0). Der Block war Alloca Ted von: pc = 0x00022f1c in CHKR_MALLOC AT ../stubs/stubs-maLoc.c:51 PC = 0x0001339C:51 in ../example.c:7 pc = 0x000155F0 im Startup AT ../config/sparc/solaris2/ startup.c: 148 pc = 0x00013298 in * unbekannt * at * unbekannt *: 0Stack-Frames sind: PC = 0x00013434 in der wichtigsten ../example.c:13 pc = 0x000155f0 im Startup ../config/sparc/solaris2/ startup.c: 148 pc = 0x00013298 in * unbekannt * at * unbekannt *: 0From Checker (PID: 04713): (BVH) BLOCK BRINGS VERLETZUNGEN IN DEN HAP.Wenn 1 Byte (s) an Adresse 0x000398B9, im Inneren des Haufens ( SBRK) .5 Bytes nach einem Block (Start: 0x398A0, Länge: 20, MDEC: 0x0). Der Block wurde zugeteilt von: PC = 0x00022F1c in CHKR_MALLOC AT ../stubs/stubs-maLoc.c:51 PC = 0x0001339c Main at ../example.c:7 pc = 0x000155f0 in der startseite at ../config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * unbekannt * at * unbekannt *: 0Stack-Frames sind: PC = 0x0001345C in Main at ../example.c:14 PC = 0x000155f0 in der startup at ../config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * unbekannt * at * unbekannt *: 0From Checker (PID: 04713): (NZA) Nullzone adressiert In der Hauptseite at ../example.c:15 pc = 0x000155f0 in startup at ../config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * unbekannt * at * unbekannt *: 0From Checker (PID: 04713) : (SIG) Signal.Receive-Signal 11 (SEGV): (Standardaktion: Kern beenden). Sehensgmentfehler


Schacher Zugehörige Software