Vérificateur

Le checker peut aider à trouver des bogues que les outils standard ne peuvent pas toujours trouver.
Télécharger maintenant

Vérificateur Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • GPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Tristan Gingold
  • Site Internet de l'éditeur:
  • http://www.gnu.org/software/checker/

Vérificateur Mots clés


Vérificateur La description

Le vérificateur peut aider à trouver des bogues que les outils standard ne peuvent pas toujours trouver. Le vérificateur peut aider à trouver des bogues que les outils standard ne peuvent pas toujours trouver. Le meilleur exemple est les fuites de mémoire. Une fuite de mémoire est une zone de mémoire, allouée à Malloc qui n'est plus utilisée. Donc, la mémoire allouée est perdue. Cela signifie que vous avez besoin de plus de mémoire et de fonctionne plus lentement, car votre système d'exploitation pourrait avoir à commencer à échanger. Il détecte les mauvaises accessoires de mémoire telles que: lire une mémoire ininitialisée, écrire dans une zone affranchie, écrire ou lire en dehors d'un bloc de mémoire et utiliser des pointeurs Null. Ceci est particulièrement utile pour les grands programmes avec de nombreuses fonctions.Checker gère des bitmaps pour garder une trace de l'état de chaque octet de la mémoire. Le statut peut être écritable, lisible, à la fois ou aucun. Lorsque la mémoire est allouée, la nouvelle mémoire devient en écriture uniquement: vous n'êtes pas autorisé à le lire car il n'a pas été initialisé.Mais lorsque vous écrivez dans ce nouveau bloc, ces octets deviennent lisibles et écrits. Lorsque le bloc est libéré, les octets deviennent illisibles et non récipients. Les zones rouges sont une mémoire illisible et non écrite, de sorte que chaque accès à une zone rouge produit un avertissement.Exame exemple: Voici un exemple de fichier faux.c: #include int ; / * Erreur: lisez un char * / c = une zone non initialisée ; / * Erreur: lisez avant la zone * / zone = ''; / * Erreur: écrivez après la zone * / * PTR = 2; / * Erreur: Utilisez un pointeur NULL, DOIT produire un noyau * /} pour compiler cet exemple avec vérificateur, utilisez simplement le cheillerGCC au lieu de GCC:% exemple de scène de jeu de Veckergcc -o Exemple Exemple.C Ensuite, pour exécuter l'exemple: %/exampleexecution produit Ces avertissements: Checker 0.9 (SPARC-SUN-SOLARIS2.5.1) Copyright (c) Tristan Gingold.checker est un détecteur d'accès à la mémoire.Checker est distribué dans l'espoir qu'il sera utile, mais sans aucune garantie; Sans même la garantie implicite de l'homérabilité ou de la condition physique à un usage particulier. Voir la licence publique gnugénérale pour plus de détails.Pour plus d'informations, définissez des deckeropts sur `--Help'froman Checker (PID: 04713):` ./example 'est en cours d'exécution (Sun Jan 1814:56:491998) de Checker ( PID: 04713): (RUH) Lire un (s) octets (s) non4ialisé dans un bloc.Lorsque (s) 1 octets (s) à l'adresse 0x000398A1, à l'intérieur du tas (SBRK) .1 octets dans un bloc (début: 0x398a0, longueur: 20, MDESC: 0x0) .Le bloc a été attribué à partir de: PC = 0x00022F1C dans chkr_malloc at ../stubs/stubs-malloc.c:51 PC = 0x0001339c en Main At ../example.c:7 PC = 0x000155f0 en démarrage à. ./config/sparc/solaris2/startup.c:148 PC = 0x00013298 In * Inconnu * AT * Inconnu *: 0stack cadres sont: PC = 0x000133f4 en Main At ../example.c:12 PC = 0x000155F0 dans le démarrage à. ./config/sparc/solaris2/startup.c:148 PC = 0x00013298 In * Inconnu * AT * Inconnu *: 0from Checker (PID: 04713): (BVH) Bloc borde la violation dans le tas.Lorsque la lecture 1 octet (s) À l'adresse 0x0003989E, à l'intérieur du tas (SBRK) .2 octets avant un bloc (Début: 0x398A0, Longueur: 20, MDEC: 0x0) .Le bloc était alloca TED de: PC = 0x00022F1C en chkr_malloc at. ../stubs/stubs-malloc.c:51 PC = 0x0001339c en Main At ../example.c:7 PC = 0x000155F0 dans le démarrage à ../config/sparc/solaris2/ STARTUP.C: 148 PC = 0x00013298 In * Inconnu * AT * Inconnu *: 0stack cadres sont: PC = 0x00013434 dans Main At ../example.c:13 PC = 0x000155F0 dans le démarrage à ../config/sparc/solaris2/ startup.c: 148 pc = 0x00013298 in * inconnu * AT * inconnu *: 0from Checker (PID: 04713): (BVH) Bloc borde la violation dans le tas.Lorsque (s) 1 octet (s) à l'adresse 0x000398B9, à l'intérieur du tas ( SBRK) .5 octets après un bloc (Début: 0x398A0, Longueur: 20, MDEC: 0x0) .Le bloc a été attribué à partir de: PC = 0x00022F1C dans chkr_malloc at ../stubs/stubs-malloc.c:51 PC = 0x0001339c Main At ../example.chanc:7 PC = 0x000155F0 dans le démarrage à ../config/sparc/solaris2/startup.c:148 PC = 0x00013298 In * Unknown * At * inconnu *: 0stack cadres sont: PC = 0x0001345C dans Main AT ../Example.C:14 PC = 0x000155F0 dans le démarrage à ../config/sparc/solaris2/startup.c:148 PC = 0x00013298 In * Unknown * At * inconnu *: 0from Checker (PID: 04713): (NZA) Zone NULL adressée.Lorsque écrire 1 octet (s) à l'adresse 0x00000000, à l'intérieur de la zone null.Vous avez probablement déformé un pointeur NULL. Ce doit provoquer une défausse de segmentation. Les cadres de base sont: PC = 0x0001347c En mode principal à ../example.c:15 PC = 0x000155f0 en démarrage à ../config/sparc/solaris2/startup.c:148 PC = 0x00013298 In * Inconnu * AT * inconnu *: 0from Checker (PID: 04713) : (SIG) Signal.Receive Signal 11 (SEGV): (Action par défaut: Terminez le noyau) Défaut de la planification.


Vérificateur Logiciels associés