Skip to content
Snippets Groups Projects
Commit b6f51172 authored by David Bühler's avatar David Bühler
Browse files

[Doc] User manual: minor changes in the documentation of analysis-scripts.

parent a8523a93
No related branches found
No related tags found
No related merge requests found
...@@ -37,9 +37,9 @@ themselves are installed in Frama-C's \texttt{share} directory, underneath ...@@ -37,9 +37,9 @@ themselves are installed in Frama-C's \texttt{share} directory, underneath
\subsection{General Framework} \subsection{General Framework}
{\em Note}: the analysis scripts are intended for usage in a wide variety {\em Note}: while the analysis scripts are intended for usage in a wide variety
of scenarios, with different plug-ins. However, currently the scripts focus of scenarios with different plug-ins, they currently focus
on usage with the \Value plug-in. on analyses with the \Value plug-in only.
The main usage mode of \texttt{analysis-scripts} consists in creating a The main usage mode of \texttt{analysis-scripts} consists in creating a
Makefile dedicated to the analysis of a C code base. Makefile dedicated to the analysis of a C code base.
...@@ -49,10 +49,10 @@ This Makefile has three main purposes: ...@@ -49,10 +49,10 @@ This Makefile has three main purposes:
\begin{enumerate} \begin{enumerate}
\item To separate the main analysis steps, saving partial results and logging \item To separate the main analysis steps, saving partial results and logging
output messages; output messages;
\item To avoid recomputing unnecessary data (e.g. the AST) when modifying \item To avoid recomputing unnecessary data when modifying
analysis-specific options; analysis-specific options;
\item To document analysis options and improve replayability, e.g. when \item To document analysis options and improve replayability, e.g. when
iteratively fine-tuning results. iteratively fine-tuning the analysis in order to improve its results.
\end{enumerate} \end{enumerate}
The intended usage is as follows: The intended usage is as follows:
...@@ -73,7 +73,7 @@ re-running \texttt{make} should be enough to obtain a new result. ...@@ -73,7 +73,7 @@ re-running \texttt{make} should be enough to obtain a new result.
Section~\ref{sec:using-generated-makefile} details usage of the Makefile Section~\ref{sec:using-generated-makefile} details usage of the Makefile
and presents an illustrative diagram. and presents an illustrative diagram.
\subsection{Alternative Workflows in the Absence of Build Information} \subsection{Possible Workflows in the Absence of Build Information}
\label{alternative-workflows} \label{alternative-workflows}
It is sometimes the case that the \FramaC user is not the developer of the It is sometimes the case that the \FramaC user is not the developer of the
...@@ -127,7 +127,7 @@ in section~\ref{sec:preprocessing}). This leads to a different workflow: ...@@ -127,7 +127,7 @@ in section~\ref{sec:preprocessing}). This leads to a different workflow:
\begin{enumerate} \begin{enumerate}
\item Run CMake with the flag \texttt{-DCMAKE\_EXPORT\_COMPILE\_COMMANDS=1}, \item Run CMake with the flag \texttt{-DCMAKE\_EXPORT\_COMPILE\_COMMANDS=1},
or install Build EAR (\url{https://github.com/rizsotto/Bear} and run or install Build EAR (\url{https://github.com/rizsotto/Bear}) and run
\texttt{bear make <targets>} instead of \texttt{make <targets>}. This will \texttt{bear make <targets>} instead of \texttt{make <targets>}. This will
create a \texttt{compile\_commands.json} file. create a \texttt{compile\_commands.json} file.
\item Run \texttt{frama-c-script list-files}. A list of the compiled files, \item Run \texttt{frama-c-script list-files}. A list of the compiled files,
...@@ -248,7 +248,7 @@ The most useful commands are described below. ...@@ -248,7 +248,7 @@ The most useful commands are described below.
Run \texttt{frama-c-script help} for more details and optional arguments. Run \texttt{frama-c-script help} for more details and optional arguments.
\begin{description} \begin{description}
\item[make-template]: used to create the initial Makefile, based on a template. \item[make-template]: creates the initial Makefile, based on a template.
This command creates a file named \texttt{GNUmakefile} with some hardcoded This command creates a file named \texttt{GNUmakefile} with some hardcoded
sections, some filled in interactively by the user, and comments indicating sections, some filled in interactively by the user, and comments indicating
which parts may need change. Once created, it enables the general workflow which parts may need change. Once created, it enables the general workflow
...@@ -270,7 +270,7 @@ Run \texttt{frama-c-script help} for more details and optional arguments. ...@@ -270,7 +270,7 @@ Run \texttt{frama-c-script help} for more details and optional arguments.
Other commands, only useful in a few cases, are described below. Other commands, only useful in a few cases, are described below.
\begin{description} \begin{description}
\item[configure <machdep>]: used to run a \texttt{configure} \item[configure <machdep>]: runs a \texttt{configure}
script (based on Autoconf) with some settings to emulate a more portable script (based on Autoconf) with some settings to emulate a more portable
system, removing optional code features that could prevent \FramaC from system, removing optional code features that could prevent \FramaC from
parsing the sources. Currently still depends partially on the host system, parsing the sources. Currently still depends partially on the host system,
...@@ -280,7 +280,7 @@ Other commands, only useful in a few cases, are described below. ...@@ -280,7 +280,7 @@ Other commands, only useful in a few cases, are described below.
by the Makefile generated by \texttt{make-template}. by the Makefile generated by \texttt{make-template}.
\item[flamegraph]: opens a {\em flamegraph}\footnote{% \item[flamegraph]: opens a {\em flamegraph}\footnote{%
See \url{https://github.com/brendangregg/FlameGraph} for details about See \url{https://github.com/brendangregg/FlameGraph} for details about
flamegraphs.} to help visualize which functions take most of the time flamegraphs.} to visualize which functions take most of the time
during analysis with \Value. during analysis with \Value.
\item[summary]: for monitoring the progression of multiple analyses defined \item[summary]: for monitoring the progression of multiple analyses defined
in a single Makefile. Presents a summary of the analyses when done. Mostly in a single Makefile. Presents a summary of the analyses when done. Mostly
...@@ -305,7 +305,7 @@ different. It is available at\\ ...@@ -305,7 +305,7 @@ different. It is available at\\
\begin{description} \begin{description}
\item[creduce.sh]: A script to help running the C-Reduce\footnote{% \item[creduce.sh]: A script to help running the C-Reduce\footnote{%
See https://embed.cs.utah.edu/creduce for more details.} tool to minify See \url{https://embed.cs.utah.edu/creduce} for more details.} tool to minify
C programs causing crashes in \FramaC; useful e.g. when submitting a bug C programs causing crashes in \FramaC; useful e.g. when submitting a bug
report to \FramaC, without needing to submit potentially confidential data. report to \FramaC, without needing to submit potentially confidential data.
The script contains extensive comments about its usage. It is also The script contains extensive comments about its usage. It is also
...@@ -327,8 +327,8 @@ Due to the variety of test cases, OSCS provide practical usage ...@@ -327,8 +327,8 @@ Due to the variety of test cases, OSCS provide practical usage
examples of the \texttt{GNUmakefile} described in this chapter. examples of the \texttt{GNUmakefile} described in this chapter.
They are periodically synchronized w.r.t. the public \FramaC repository They are periodically synchronized w.r.t. the public \FramaC repository
(daily snapshots), so they may contain features not yet available in the (daily snapshots), so they may contain features not yet available in the
major \FramaC releases. A few may also contain legacy features which major \FramaC releases. A few case studies may also contain legacy features
are no longer used; but overall, they provide useful examples and allow which are no longer used; but overall, they provide useful examples and allow
the user to tweak analysis parameters to test their effects. the user to tweak analysis parameters to test their effects.
\section{Technical Notes} \section{Technical Notes}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment