Questions tagged [frama-c]

Frama-C is an Open Source suite of tools dedicated to the analysis of C source code.

Frama-C offers ready-to-use analyses for C programs: call graph, value analysis, functional dependencies, Program Dependence Graph, runtime monitoring, etc. It also allows the verification of functional properties, temporal logic, and much more. Results can be expressed in plain text, in SARIF, or in Frama-C's graphical interface.

Each analysis is implemented as a plug-in, and plug-ins inside the platform can use the results of one another. Frama-C is Open Source and extensible: new analyses can be implemented in OCaml as additional plug-ins that take advantage of existing ones. They communicate using the ACSL specification language, which also enables describing what the program is supposed to do.

Most provided analyses in Frama-C are sound: used within a delimited perimeter, all the behaviors that can happen at run-time are included in the behaviors statically predicted by Frama-C. Notwithstanding the possibility of bugs, plug-ins must be used as documented for the property to hold. This makes it possible to use Frama-C for the formal verification of C programs.

447 questions
0
votes
2 answers

Installing Frama-c Sodium/Fluorine in Ubuntu 14.04 from source

I'm trying to install frama-c from source code in my Ubuntu 14.04 but it's never possible. Fluorine make error: allberson@allberson-Aspire-E1-531:~/Área de Trabalho/frama-c-Fluorine-20130601$ make Generating …
0
votes
0 answers

Frama-C simple formal specification

I am working with Frama-C formal specification for two methods: /*@ requires n >= 0; ensures result >= 0; terminates n == 0; */ int decimal_binary(int n) { int rem, i = 1, binary = 0; while (n != 0) { rem = n %…
user2667455
  • 99
  • 2
  • 9
0
votes
1 answer

Understanding how to use post- condition and loop-invariant correctly with Frama-c

I am trying to prove on this example that the return value will be either 0(if 8 is not in array) or 1(if 8 in array). int fi8(int *array, int size) { int fi8 = 0; int i = 0; for(i = 0; i < length; ++i) { if(array[i] == 8) fi8 =…
Proma
  • 111
  • 1
  • 6
0
votes
1 answer

I would like to generate all the preconditions mainly initial preconditions in Frama-C

I would like to generate all the preconditions generated by Frama-C which are stored in a table according to the calculus.ml code. I am mainly interested to get the initial predicate which is converted to logic formula and sent to the solvers. Can…
D.L.
  • 169
  • 3
  • 17
0
votes
1 answer

Passing multiple arguments to C file when slicing

My main method in my source code a.c accepts 2 arguments : one is a file name and the other is an integer. I run it like : ./a.out filename1.txt 3 But when I try to use slicing with frama-c frama-c a.c filename1.txt 3…
0
votes
0 answers

frama-c malloc Neon-20140301 fatal error

Is it possible to detect memory leaks or double free with Frama-c? I have tried to test that example But #include #include #define FRAMA_C_MALLOC_STACK #include "/usr/share/frama-c/libc/fc_runtime.c" int main() { int *x =…
bataliero1234
  • 145
  • 10
0
votes
2 answers

Frama-C: access to the cil/src/ext modules data and few others questions as well

first of all, i will explain what i would like to do here : given a C big programm, i would like to output a list of producers/consumers for a data and a list of calling/called-by functions of the function where this data is. for doing this, i am…
evoliptic
  • 333
  • 2
  • 11
0
votes
1 answer

Ignore the assembler code in value analysis and sparecode

I will try to use the value analysis on a project in C, but this project contains some .c file where we can find assembler code. When I try to launch frama-C on these files, I get an error on the assembly code. The assembler code is desgned for…
0
votes
3 answers

Frama-C Gui on mavericks not working

Does anyone have installed Frama-C on Mavericks ? Because i can't install it or do not know how to install it (Gui Version)! I already installed ocaml on my pc, but for the Gui version i need to install these libraries : Gtk, GtkSourceView,…
Damiii
  • 1,363
  • 4
  • 25
  • 46
0
votes
1 answer

WP Plugin with Alt-Ergo - unable to prove?

I'm trying to test WP plugin with Alt-Ergo on a fairly complex function. Unfortunately, I am not able to figure out what's wrong with the "basic" behavior given below. This behavior should be true because there is no other place tenumRMode is…
0
votes
2 answers

WP plugin: Alt-Ergo Syntax Error

For the below C function, I'm getting syntax errors from Alt-Ergo for the latest version of Frama-c. frama-c -wp -wp-rte -lib-entry RoundNearestFive.c -wp-out temp -wp-model="nat, real" I'm not sure what is wrong in this generated line: ... …
0
votes
1 answer

frama-c jessie killed during VC generation

I'm trying to apply frama-c/jessie on a module of a proprietary safety critical system from our customer. The function under analysis is pretty big (image 700 uncommented lines count) with a lot of conditional statements as well as complex (&&, ||,…
0
votes
1 answer

How to convert data type from Cil_types to Cil

When I use fram-c to write parser. I encountered a problem that Ast.get() returns the type Cil_types.file but I need Cil.file for future use. They are actually has the same fields, but the ocaml compiler just not let the direct assignment from…
FakeJohn
  • 3
  • 2
0
votes
1 answer

Which Frama-C version is best suited to develop a slicing plugin?

I want to explore Frama-C to apply Assertion-based Slicing (using ACSL notation). I have found that there are several different versions of Frama-C with some different features. My question is which version is best suited to develop a a slicing…
user2291590
  • 218
  • 1
  • 2
  • 9
0
votes
1 answer

Strong pointers to varinfo that does not exist in AST?

My Frama-C plug-in creates some varinfos with makeGlobalVar ~logic:true name type. These varinfos do not exist in the AST (they are placeholders for the results of calls to allocating functions in the target program, created “dynamically” during the…
Pascal Cuoq
  • 79,187
  • 7
  • 161
  • 281
1 2 3
29
30