goto-cc - En ligne dans le Cloud

Il s'agit de la commande goto-cc qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


cbmc - Bounded Model Checker pour les programmes C/C++ et Java

SYNOPSIS


cbmc [--biens id-propriété] fichier.c

cbmc [--afficher-propriétés] fichier.c

cbmc [--toutes-propriétés] fichier.c

aller à-cc [-JE chemin-inclus] [-c] fichier.c [-ou fichieroutle.o]

aller à l'instrument dans le fichier fichier de sortie

Seules les options les plus utiles sont répertoriées ici ; voir ci-dessous pour le reste.

DESCRIPTION


cbmc génère des traces qui démontrent comment une affirmation peut être violée, ou prouve que
l'assertion ne peut pas être violée dans un nombre donné d'itérations de boucle. CBMC peut lire
code source directement, ou un goto-binaire généré par goto-cc. Les programmes Java sont donnés comme
fichiers de classe. Sans aucune autre option, cbmc vérifie toutes les propriétés (automatiquement
généré ou spécifié par l'utilisateur) trouvé dans le programme. Si l'une des propriétés peut être
violé, un contre-exemple est imprimé et l'analyse est abandonnée. L'analyse peut être
limité à une propriété particulière avec l'option --property. Le résultat de la vérification
pour toutes les propriétés peut être obtenu au moyen de l'option --all-properties.

aller à-cc lit le code source et génère un goto-binary. Son interface de ligne de commande est
conçu pour imiter celui de gcc(1). A noter en particulier que aller à-cc distingue entre
les phases de compilation et de liaison, tout comme le fait gcc. cbmc attend un goto-binaire pour lequel
la liaison est terminée.

aller à l'instrument lit un goto-binary, effectue une transformation de programme donnée, puis
écrit le programme résultant comme goto-binary sur le disque.

Le flux habituel consiste à (1) traduire la source en un goto-binaire en utilisant goto-cc, puis (2)
effectuer l'instrumentation avec goto-instrument, et enfin (3) effectuer l'analyse avec
CBMC.

OPTIONS


FRONTEND OPTIONS (cbmc et aller-cc)
-Je chemine
Définir le chemin d'inclusion (C/C++)

macro -D
Définir une macro de préprocesseur (C/C++)

--prétraiter
Arrêter après le prétraitement

--show-symbole-table
Afficher la table des symboles

--show-goto-fonctions
Afficher le programme aller

ARCHITECTURAL OPTIONS (cbmc et aller-cc)
cbmc par défaut utilise des paramètres architecturaux qui correspondent à ceux de la machine cbmc is
exécuté sur, c'est-à-dire que les paramètres ci-dessous ne sont nécessaires que lors de la vérification du logiciel qui est
destiné à fonctionner sur une architecture ou un système d'exploitation différent. aller à-cc génère un goto-binaire pour un
architecture particulière, c'est-à-dire que l'architecture ne peut pas être modifiée après que le goto-binary est
généré.

--16, --32, --64
Définir la largeur de l'entier

--LP64, --ILP64, --LLP64, --ILP32, --LP32
Définir la largeur des int, des longs et des pointeurs

--petit endian
Autoriser les conversions mot-octet petit-boutiste

--gros-boutiste
Autoriser les conversions mot-octet gros-boutiste

--caractère-non-signé
Rendre "char" non signé par défaut

--arch Définir l'architecture cible

--os Définir le système d'exploitation cible

--no-arche
Ne pas mettre en place une architecture

--no-bibliotheque
Désactiver la bibliothèque C abstraite intégrée

--arrondi au plus proche, --arrondi au plus-inf, --arrondi au moins-inf, --arrondi à zéro
Mode d'arrondi à virgule flottante IEEE à utiliser au démarrage du programme (la valeur par défaut est ronde
au plus proche). Le programme en cours de vérification peut outrepasser ce paramètre, par exemple, avec
cercle (3).

PROGRAMME INSTRUMENTATION OPTIONS (cbmc et aller à l'instrument)
Le cbmc et aller à l'instrument peut générer des assertions qui détectent des erreurs courantes spécifiques,
comme indiqué ci-dessous.

--bounds-check
Activer les vérifications des limites du tableau

--div-by-zero-check
Activer la division par zéro chèques

--pointeur-vérification
Activer les vérifications de pointeur

--signed-overflow-check
Activer les contrôles arithmétiques de dépassement et de dépassement bas pour l'arithmétique des entiers signés

--contrôle-de-débordement-non signé
Activer les contrôles arithmétiques de dépassement et de dépassement pour l'arithmétique d'entiers non signés

--nan-check
Vérifier les calculs en virgule flottante pour NaN

--pas d'assertions
Ignorer les assertions fournies par l'utilisateur

--pas d'hypothèses
Ignorer les hypothèses fournies par l'utilisateur

--error-label étiquette
Vérifiez que l'étiquette donnée est inaccessible

PROGRAMME INSTRUMENTATION OPTIONS (aller à l'instrument seulement)
aller à l'instrument prend en charge des transformations de programme plus poussées et plus complexes.

--nondet-volatile
Rend les lectures à partir de variables volatiles non déterministes

--isr fonction
Instruments une routine de service d'interruption avec le nom donné

--mmio Instruments E/S mappées en mémoire

--nondet-statique
Les variables à durée de vie statique sont initialisées de manière non déterministe

--dump-c
Sortez le code source ANSI-C au lieu d'un binaire goto.

BMC OPTIONS (cbmc)
--toutes-propriétés
Signaler l'état de toutes les propriétés

--show-propriétés
Afficher uniquement les propriétés

--montrer-boucles
Afficher les boucles dans le programme

--cover-assertions
Vérifier quelles assertions sont accessibles

--nom de la fonction
Définir le nom de la fonction principale

--Identifiant de la propriété
Vérifier uniquement la propriété spécifique avec l'identifiant donné

--programme uniquement
Afficher uniquement l'expression du programme

--profondeur nr
Limiter la profondeur de recherche

--dérouler nr
Dérouler les boucles nr fois

--unwindset L:B,...
Déroulez la boucle L avec une limite de B (utilisez --show-loops pour obtenir les identifiants de boucle)

--show-vcc
Afficher les conditions de vérification

--slice-formule
Supprimer les affectations sans rapport avec la propriété

--pas d'assertions de déroulement
Ne pas générer d'assertions de déroulement

--no-jolis-noms
Ne pas simplifier les identifiants

BACK-END OPTIONS (cbmc)
--dimacs
Générer CNF au format DIMACS pour une utilisation par des solveurs SAT externes

--beautify-gourmand
Embellir le contre-exemple (heuristique gourmande)

--smt1 Sortir les sous-objectifs dans la syntaxe SMT1 (expérimental)

--smt2 Sortir les sous-objectifs dans la syntaxe SMT2 (expérimental)

--boolecteur
Utiliser Boolector (expérimental)

--mathsat
Utiliser MathSAT (expérimental)

--cvc Utiliser CVC3 (expérimental)

--yices
Utiliser Yices (expérimental)

--z3 Utiliser Z3 (expérimental)

--affiner
Utiliser la procédure de raffinement (expérimental)

--outfile nom de fichier
Formule de sortie vers un fichier donné

--arrays-uf-jamais
Ne jamais transformer des tableaux en fonctions non interprétées

--arrays-uf-toujours
Transformez toujours les tableaux en fonctions non interprétées

ENVIRONNEMENT


Tous les outils respectent la variable d'environnement TMPDIR lors de la génération de fichiers temporaires et
répertoires. De plus, notez que le préprocesseur utilisé par CBMC utilisera l'environnement
variables pour localiser les fichiers d'en-tête. GOTO-CC vise à accepter toutes les variables d'environnement qui
GCC le fait.

DROIT D'AUTEUR


2001-2014, Daniel Kroening, Edmund Clarke

Utilisez goto-cc en ligne en utilisant les services onworks.net



Derniers programmes en ligne Linux et Windows