Este es el comando frama-c que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
frama-c [.byte] - un analizador estático para programas C
frama-c-gui [.byte]: la interfaz gráfica de frama-c
SINOPSIS
marco-c [ opciones ] archivos
DESCRIPCIÓN
marco-c es un conjunto de herramientas dedicadas al análisis de código fuente escrito en C.
reúne varias técnicas de análisis estático en un solo marco colaborativo. Esta
marco se puede ampliar con complementos adicionales colocados en el $ FRAMAC_PLUGIN directorio.
El comando
frama-c-ayuda
proporcionará la lista completa de los complementos que están instalados actualmente.
marco-c-gui es la interfaz gráfica de usuario de marco-c. Cuenta con las mismas opciones que
la versión de la línea de comandos.
marco-c.byte y marco-c-gui.byte son las versiones de código de bytes ocaml de la línea de comandos y
interfaz gráfica de usuario respectivamente.
De forma predeterminada, Frama-C reconoce .c archivos como archivos C que necesitan preprocesamiento y .i archivos como
Los archivos C ya se han procesado previamente. Algunos complementos pueden ampliar la lista de reconocidos
archivos. El preprocesamiento se puede personalizar a través del -comando-cpp y -cpp-extra-argumentos
.
OPCIONES
Sintaxis
Las opciones que toman un parámetro adicional también se pueden escribir bajo el formulario
-opción=detener
Esta opción es obligatoria cuando detener comienza con un guión ('-')
La mayoría de las opciones que no toman ningún parámetro tienen un correspondiente
-No-Opción
opción que tiene el efecto contrario.
Ayuda opciones
-ayuda da un breve aviso de uso y la lista de complementos instalados.
-ayuda-del-núcleo
imprime la lista de opciones reconocidas por el kernel de Frama-C
-verboso n
Establece el nivel de verbosidad (el valor predeterminado es 1). Establecerlo en 0 producirá menos progreso
mensajes. Este nivel también se puede establecer en un plugin base, con opción -plugin-
verboso n. El nivel de verbosidad del kernel se puede controlar con la opción
-kernel-detallado n.
-depurar n
Establece el nivel de depuración (el valor predeterminado es 0, lo que significa que no hay mensajes de depuración). Esta opción
tiene las mismas especializaciones por plugin (y kernel) que -verboso.
-tranquilo Establece el nivel de depuración y verbosidad en 0.
De Seguros CONTROL Frama-C's núcleo
-rango-válido-absoluto
considera que todas las direcciones numéricas en el rango mínimo máximo son validos. Los límites son
analizado como constantes enteras ocaml. Por defecto, todas las direcciones numéricas son
considerado inválido.
-añadir-ruta p1 [, p2 [..., pn]]
agrega directorios atravesar a la lista de directorios en los que se encuentran los complementos
buscado
[-no] -permitir duplicación
permite la duplicación de pequeños bloques durante la normalización de pruebas y bucles.
De lo contrario, la normalización usa etiquetas y gotos. Bloques más grandes y bloques con
El flujo de control trivial nunca se duplica. El valor predeterminado es sí.
[-no] -no
lee la anotación ACSL. Este es el predeterminado. Las anotaciones no son procesadas previamente por
defecto. Usar -pp-anotar para eso.
-entradas-grandes-hexadecimal max
enteros mayores que max se muestran en hexadecimal (por defecto, todos los enteros son
mostrado en decimal)
-cheque realiza comprobaciones de integridad en el AST interno (solo para desarrolladores).
[-no] -collapse-call-cast
permite la conversión implícita entre el valor devuelto por una función y el valor l es
asignado a. De lo contrario, se utiliza una variable temporal y la conversión se hace explícita.
El valor predeterminado es sí.
[-no] -constfold
pliega todas las expresiones sintácticamente constantes en el código antes de los análisis. Defaults
al no.
[-no] -continuar-anot-error
Al analizar una anotación, el comportamiento predeterminado (el -No versión de esta opción)
cuando se produce un error de verificación de tipo es rechazar el archivo de origen como es el caso de
errores de verificación de tipo dentro del código C. Con esta opción activada, el comprobador de tipos
solo generar una advertencia y descartar la anotación, pero la verificación de tipo continuará
(Sin embargo, los errores en el código C siguen siendo fatales).
-comando-cpp cmd
Usos cmd como el comando para preprocesar archivos C. Por defecto es CPP entorno
variable o para
gcc-C-E-I.
si no está configurado. Para conservar las anotaciones de ACSL, el preprocesador debe mantener
comentarios (el -C opción para gcc). %1 y %2 puede ser utilizado en cmd para denotar el
archivo fuente original y el archivo preprocesado respectivamente
-cpp-extra-argumentos args
Da argumentos adicionales al preprocesador. Esto solo es útil cuando
-preproceso-annot Está establecido. El procesamiento previo de las anotaciones se realiza en dos
etapas de procesamiento. El primero es un pase normal en el código C que conserva macro
definiciones. A continuación, se utilizan en el segundo paso durante el cual las anotaciones se
preprocesado. args se utilizan solo para la primera pasada, de modo que los argumentos que
no debe usarse dos veces (como directivas de inclusión adicionales o macro
definiciones) debe ir allí en lugar de -comando-cpp.
[-no] -dynlink
Cuando está activado, cargue todos los complementos dinámicos que se encuentran en la ruta de búsqueda (consulte -plugin-de-impresión-
camino para obtener más información sobre la ruta de búsqueda predeterminada). De lo contrario, solo complementos
solicitado por -cargar-módulos se cargará. El comportamiento predeterminado está activado.
-enumeraciones repetir
Elija la forma en que se determina la representación de los tipos enumerados. marco-c
-enumeraciones ayuda da la lista de opciones disponibles. El valor predeterminado es gcc-enumeraciones
-dígitos-flotantes n
Al generar números de punto flotante, muestre n dígitos. El valor predeterminado es 12.
-flotante-descarga-a-cero
Operaciones de coma flotante al ras a cero
-flotante-hexadecimal
mostrar flotantes como hexadecimal
-flotante-normal
mostrar flotadores con la rutina estándar de Ocaml
-float-relativo
muestra el intervalo de flotación como [ límite inferior++anchura ]
[-no] -force-rl-arg-eval
Fuerza el orden de evaluación de derecha a izquierda para los argumentos de las llamadas a funciones. De lo contrario
el orden de evaluación se deja sin especificar, como en el estándar C. Por defecto es no.
-journal-deshabilitar
No imprima un diario de la sesión actual. Ver -diario-habilitar.
-diario-habilitar
Activado de forma predeterminada, vuelca un diario de todas las acciones realizadas durante el
Sesión de Frama-C en forma de script ocaml que se puede reproducir con -carga-
guión. El nombre del script se puede configurar con el -nombre-de-la-revista .
-nombre-de-la-revista nombre
Establezca el nombre del archivo de diario (sin el .ml extensión). Predeterminado a
marco_c_journal.
-inicializados-padding-locales
La inicialización implícita de locales establece los bits de relleno en 0. Si es falso, los bits de relleno
se dejan sin inicializar (predeterminado en sí).
[-no] -keep-comments
Intenta conservar los comentarios cuando imprime de forma bonita el código fuente (el valor predeterminado es no).
[-no] -keep-switch
Cuándo -simplificar-cfg está configurado, mantiene las declaraciones de cambio. Por defecto es no.
-mantener-funciones-especificadas-no-utilizadas
See -remover-funciones-especificadas-no-utilizadas
[-no] -entrada-libra
Indica que se llama al punto de entrada durante la ejecución del programa. Esto implica en
En particular, no se puede suponer que las variables globales tengan sus valores iniciales.
El valor predeterminado es -no-lib-entrada: el punto de entrada es también el punto de partida de la
el programa y los globales tienen su valor inicial.
-carga presentar
cargar el estado (guardado previamente) contenido en presentar.
-módulo-de-carga m1 [, m2 [..., mn]]
carga los módulos de ocaml atravesar . Estos módulos deben ser .cmxsarchivos para el
versión de código nativo de Frama-c y .cmoor.cmaarchivos para la versión de código de bytes (consulte
la sección Dynlink del manual de Ocaml para obtener más información). Todos los módulos que son
presentes en las rutas de búsqueda del complemento se cargan automáticamente.
-cargar-script s1 [, s2, [..., sn]]
carga los scripts ocaml atravesar . Los guiones deben ser .mlarchivos. Ellos
debe ser compilable basándose únicamente en la biblioteca estándar de Ocaml y la API de Frama-C. Si
se necesita algún paso de compilación personalizado, compílelos fuera de Frama-C y use
-módulo-de-carga preferiblemente.
-machdep máquina
usos máquina como la configuración actual dependiente de la máquina (tamaño de los distintos
tipos de enteros, endiandness, ...). La lista de máquinas admitidas actualmente es
disponible a través de -machdep ayuda opción. El valor predeterminado es x86_32
-principal f
Sets f como punto de entrada del análisis. Por defecto es 'principal'. Por defecto, es
considerado como el punto de partida del programa en análisis. Usar -entrada-libra if f
se supone que debe ser llamado en medio de una ejecución.
-ofuscar
imprime una versión ofuscada del código (donde se reemplazan los identificadores originales
por uno sin sentido) y salidas. La tabla de correspondencia entre originales y nuevos
los símbolos se mantienen al principio del resultado.
-ocódigo presentar
redirige el código bastante impreso a presentar en lugar de salida estándar.
[-no] -nombre-origen
Durante la fase de normalización, algunas variables pueden cambiar de nombre cuando se
variable con el mismo nombre puede coexistir (por ejemplo, una variable global y una
parámetro). Cuando esta opción está activada, se imprime un mensaje cada vez que esto ocurre.
Por defecto es no.
[-no] -advertir-firmado-abatido
generar alarmas cuando los abatidos firmados pueden exceder el rango de destino (predeterminado para
No).
[-no] -aviso-desbordamiento-firmado
generar alarmas para operaciones firmadas que se desbordan (predeterminado en sí).
[-no] -warn-unsigned-downcast
generar alarmas cuando los abatidos sin firmar pueden exceder el rango de destino (predeterminado
a no).
[-no] -warn-unsigned-overflow
generar alarmas para operaciones sin firmar que se desbordan (predeterminado a no).
[-no] -pp-annot
anotaciones previas al proceso. Actualmente, esto solo es posible cuando se usa gcc (o GNU
cpp) preprocesador. El valor predeterminado es no procesar previamente las anotaciones.
[-no] -impresión
pretty-imprime el código fuente normalizado por CIL (predeterminado en no).
-print-libruta
genera el directorio donde está instalada la biblioteca del kernel Frama-C
-ruta-de-impresión
alias de -imprimir-compartir-ruta
-ruta-del-complemento-de-impresión
genera el directorio donde Frama-C busca sus complementos (puede ser anulado por el
FRAMAC_PLUGIN variable y la -añadir-ruta opción)
-imprimir-compartir-ruta
genera el directorio donde Frama-C almacena sus datos (puede ser reemplazado por el
FRAMAC_COMPARTIR variable)
-remover-funciones-especificadas-no-utilizadas
mantiene prototipos de funciones que tienen una especificación ACSL pero que no se utilizan en la
código. Este es el predeterminado. Funciones que tienen el atributo FRAMAC_BUILTIN son siempre
conservó.
-matrices-seguras
Para matrices multidimensionales o matrices que son campos dentro de estructuras, se supone que
todos los accesos deben estar enlazados (establecidos de forma predeterminada). La opcion opuesta es -inseguro-
arrays
-salvar presentar
Guarda el estado de Frama-C en presentar después de que se hayan realizado los análisis.
[-no] -simplify-cfg
elimina la declaración de interrupción, continuación y cambio antes de los análisis. Por defecto es no.
-luego permite componer análisis: se producirá una primera ejecución de Frama-C con las opciones
antes -luego y se realizará una segunda ejecución con las opciones después -luego en
proyecto actual desde la primera ejecución.
-entonces-en prj
Similar a -luego excepto que la segunda ejecución se realiza en el proyecto prj Si no hay tal
el proyecto existe, Frama-C sale con un error.
-hora presentar
agrega la hora y la fecha del usuario en el presentar cuando Frama-C sale.
-comprobación de tipo
fuerza la verificación de tipos de los archivos de origen. Esta opción solo es relevante si no hay más
se solicita el análisis (ya que la verificación de tipos se produce implícitamente antes del análisis
es lanzado).
-univel n
Desenrollar bucles sintácticamente n veces antes del análisis. Esto puede resultar bastante costoso
y algunos complementos (por ejemplo, el análisis de valor) proporcionan formas más eficientes de realizar
la misma cosa. Consulte sus respectivos manuales para obtener más información. Esto también puede
activarse por bucle a través del loops pragma desenrollar directiva. A
valor negativo para n inhibirá tales pragmas.
[-no] -unicode
genera fórmulas ACSL con caracteres utf8. Este es el predeterminado. Cuando se le da el
-sin-unicode opción, Frama-C utilizará la versión ASCII en su lugar. Consulte el manual de ACSL
para la correspondencia.
-matrices-inseguras
ver -matrices-seguras
[-no] -acceso-no especificado
comprueba que los accesos de lectura / escritura que se producen en un orden no especificado (de acuerdo con el C
noción estándar de punto de secuencia) se realizan en ubicaciones separadas. Con
-sin-acceso-no-especificado, asume que siempre es así (este es el valor predeterminado).
-versión
emite la cadena de versión de Frama-C
-advertir-decimal-flotante
advierte cuando una constante de punto flotante no se puede representar con exactitud (por ejemplo, 0.1).
puede ser uno de ninguna, una vezo all
[-no] -warn-undeclared-callee
advierte cuando se llama a una función antes de que se haya declarado (establecido de forma predeterminada).
Frama-C
Plugins soluciones y opciones
Para cada uno plugin, El comando
marco-c -plugin-ayuda
le dará la lista de opciones que son específicas del complemento.
SALIR ESTADO
0 Ejecución exitosa
1 Entrada de usuario no válida
2 Interrupción del usuario (matar o equivalente)
3 Característica no implementada
4 5 6 Error interno
125 Error desconocido
El estado de salida superior a 2 se puede considerar como un error (o una solicitud de función para el caso
del estado de salida 3) y se puede informar en el BTS de Frama-C (ver más abajo).
MEDIO AMBIENTE VARIABLES
Es posible controlar los lugares donde Frama-C busca sus archivos a través del
siguientes variables.
FRAMAC_LIB
El directorio donde se instalan las interfaces compiladas del kernel.
FRAMAC_PLUGIN
El directorio donde Frama-C puede encontrar complementos estándar. Si desea tener complementos
en varios lugares, use -añadir-ruta preferiblemente.
FRAMAC_COMPARTIR
El directorio donde están instalados los datos de Frama-C.
Use frama-c en línea usando los servicios de onworks.net