Securing the future of your critical activities
The Frama-C source code analysis platform provides tools to make your code safer and more secure.
Download Frama-CTrying out Frama-C analyzing
a simple C program
Browsing the analysis results with Frama-C
int S=0; int T[5]; int main(void) { int i; int *p = &T[0] ; for (i=0; i<5; i++) { S = S+i; *p++ = S; } return S; } 01This command-line creates an analysis project for file first.c.frama-c-gui -slevel 103 -val2 first.c102Option -val runs the Evolved Value Analysis plug-in and prepares its results.
i = 0; while (i < 5) { { int *tmp; 01The Evolved Value Analysis (EVA) plug-in computes sets of possible values for every variable at each point of the program.S1 += i; { /* sequence */ tmp = p; p ++; *tmp = S; } } i++; } return S; } S ∈ {0; 1; 3; 6}202When the execution reaches the highlighted point inside the loop, the variable S always contains either 0, 1, 3, or 6. Frama-C guarantees that it does not take any other values at that point. S (after) ∈ {0; 1; 3; 6; 10}
p = T; i = 0; while (i < 5) { { int *tmp; S += i; { /* sequence */ tmp = p; p ++; 01For each statement, Frama-C can provide an exhaustive list of the memory cells that may be modified by this statement during the execution, even if the statement uses pointers.*tmp = S;1 } } i++; } return S; } *tmp = S; modifies T[0..4]02Frama-C guarantees that anytime it is executed, the statement *tmp = S; does not change any memory location other than the cells of the array T.2
int main(void) { int i; int *p; p = T; i = 0; while (i < 5) { { int *tmp; S += i;202The value contained in variable S at the statement *tmp = S; was defined by the statement S += i; { /* sequence */ tmp = p; p ++; 01The dependencies plug-in highlights the statements that define the value of variable S at this point.*tmp = S1; } } i++; } return S; }
int main(void) { int i; int *p; 01This analysis highlights all the statements impacted by the selected statement.p = T;1 i = 0; while (i < 5) { { int *tmp; S += i; { /* sequence */ tmp = p; p++; *tmp = S;202This statement has repercussions on the statements tmp = p; p++; *tmp = S;. It is guaranteed not to affect the statements S += i; and i ++; } } i++; } return S; }
How can
Frama-C
be used?
Test your software's
robustness Enforce code
requirements Detect security
defects
Frama-C Calendar
The first version of the Frama C Plugins
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit...
Read MoreLorem Ipsum
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed...
of letters, as opposed to using of letters, as opposed to using
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed...
Read Moreof letters, as opposed to using
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed...
frama-clang 0.0.3, compatible with Frama-C 15 is out.
Frama-Clang is a plugin that allows Frama-C to take as input C++ programs. As its name implies, it is based on the clang compiler, the C/C++/Objective-C front-end of the llvm platform. Changes Compatibility with Frama-C 15 Phosphorus Improved handling of constructors and...
Read MoreThe First Version Of the frama-clang plugin
The first version of the Frama-Clang plugin, an experimental C++ front-end for Frama-C, is available. The first version of the Frama-Clang plugin, an experimental C++ front-end for Frama-C, is available. Nulla quis lorem ut libero malesuada feugiat. Cras ultricies ligula sed magna...
Event 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit...
Read MoreLorem Ipsum
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed...
It is a long It is a long It is a long
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed...
Event 2
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit...
Read More