package frama-c
Install
Dune Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=d2fbb3b8d0ff83945872e9e6fa258e934a706360e698dae3b4d5f971addf7493
doc/frama-c.analysis-scripts/Analysis_scripts/List_functions/Self/index.html
Module List_functions.Self
include Frama_c_kernel.Log.Messages
category for debugging/verbose messages. Must be registered before any use. Each column in the string defines a sub-category, e.g. a:b:c defines a subcategory c of b, which is itself a subcategory of a. Enabling a category (via -plugin-msg-category) will enable all its subcategories.
val printf :
?level:int ->
?dkey:category ->
?current:bool ->
?source:Frama_c_kernel.Filepath.position ->
?append:(Format.formatter -> unit) ->
?header:(Format.formatter -> unit) ->
('a, Format.formatter, unit) format ->
'a
Outputs the formatted message on stdout
. Levels and key-categories are taken into account like event messages. The header formatted message is emitted as a regular result
message.
val result :
?level:int ->
?dkey:category ->
'a Frama_c_kernel.Log.pretty_printer
Results of analysis. Default level is 1.
val feedback :
?ontty:Frama_c_kernel.Log.ontty ->
?level:int ->
?dkey:category ->
'a Frama_c_kernel.Log.pretty_printer
Progress and feedback. Level is tested against the verbosity level.
val debug :
?level:int ->
?dkey:category ->
'a Frama_c_kernel.Log.pretty_printer
Debugging information dedicated to Plugin developers. Default level is 1. The debugging key is used in message headers. See also set_debug_keys
and set_debug_keyset
.
val warning : ?wkey:warn_category -> 'a Frama_c_kernel.Log.pretty_printer
Hypothesis and restrictions.
val error : 'a Frama_c_kernel.Log.pretty_printer
user error: syntax/typing error, bad expected input, etc.
val abort : ('a, 'b) Frama_c_kernel.Log.pretty_aborter
user error stopping the plugin.
val failure : 'a Frama_c_kernel.Log.pretty_printer
internal error of the plug-in.
val fatal : ('a, 'b) Frama_c_kernel.Log.pretty_aborter
internal error of the plug-in.
val verify : bool -> ('a, bool) Frama_c_kernel.Log.pretty_aborter
If the first argument is true
, return true
and do nothing else, otherwise, send the message on the fatal channel and return false
.
The intended usage is: assert (verify e "Bla...") ;
.
val not_yet_implemented :
?current:bool ->
?source:Frama_c_kernel.Filepath.position ->
('a, Format.formatter, unit, 'b) format4 ->
'a
raises FeatureRequest
but does not send any message. If the exception is not caught, Frama-C displays a feature-request message to the user.
deprecated s ~now f
indicates that the use of f
of name s
is now deprecated. It should be replaced by now
.
val with_result :
(Frama_c_kernel.Log.event option -> 'b) ->
('a, 'b) Frama_c_kernel.Log.pretty_aborter
with_result f fmt
calls f
in the same condition as logwith
.
val with_warning :
(Frama_c_kernel.Log.event option -> 'b) ->
('a, 'b) Frama_c_kernel.Log.pretty_aborter
with_warning f fmt
calls f
in the same condition as logwith
.
val with_error :
(Frama_c_kernel.Log.event option -> 'b) ->
('a, 'b) Frama_c_kernel.Log.pretty_aborter
with_error f fmt
calls f
in the same condition as logwith
.
val with_failure :
(Frama_c_kernel.Log.event option -> 'b) ->
('a, 'b) Frama_c_kernel.Log.pretty_aborter
with_failure f fmt
calls f
in the same condition as logwith
.
val log :
?kind:Frama_c_kernel.Log.kind ->
?verbose:int ->
?debug:int ->
'a Frama_c_kernel.Log.pretty_printer
Generic log routine. The default kind is Result
. Use cases (with n,m > 0
):
log ~verbose:n
: emit the message only when verbosity level is at leastn
.log ~debug:n
: emit the message only when debugging level is at leastn
.log ~verbose:n ~debug:m
: any debugging or verbosity level is sufficient.
val logwith :
(Frama_c_kernel.Log.event option -> 'b) ->
?wkey:warn_category ->
?emitwith:(Frama_c_kernel.Log.event -> unit) ->
?once:bool ->
('a, 'b) Frama_c_kernel.Log.pretty_aborter
Recommanded generic log routine using warn_category
instead of kind
. logwith continuation ?wkey fmt
similar to warning ?wkey fmt
and then calling the continuation
. The optional continuation argument refers to the corresponding event. None
is used iff no message is logged. In case the wkey
is considered as a Failure
, the continution is not called. This kind of message denotes a fatal error aborting Frama-C. Notice that the ~emitwith
action is called iff a message is logged.
val register :
Frama_c_kernel.Log.kind ->
(Frama_c_kernel.Log.event -> unit) ->
unit
Local registry for listeners.
Category management
val register_category : string -> category
register a new debugging/verbose category. Note: categories must be added (e.g. via add_debug_keys
) after registration.
val pp_category : Format.formatter -> category -> unit
pretty-prints a category.
val dkey_name : category -> string
returns the category name as a string.
val get_category : string -> category option
returns the corresponding registered category or None
if no such category exists.
val get_all_categories : unit -> category list
returns all registered categories.
val add_debug_keys : category -> unit
adds categories corresponding to string (including potential subcategories) to the set of categories for which messages are to be displayed. The string must have been registered beforehand.
val del_debug_keys : category -> unit
removes the given categories from the set for which messages are printed. The string must have been registered beforehand.
val get_debug_keys : unit -> category list
Returns currently active keys
val is_debug_key_enabled : category -> bool
Returns true
if the given category is currently active
val register_warn_category : string -> warn_category
val pp_warn_category : Format.formatter -> warn_category -> unit
val wkey_name : warn_category -> string
returns the warning category name as a string.
val get_warn_category : string -> warn_category option
val get_all_warn_categories : unit -> warn_category list
val get_all_warn_categories_status :
unit ->
(warn_category * Frama_c_kernel.Log.warn_status) list
val set_warn_status : warn_category -> Frama_c_kernel.Log.warn_status -> unit
val get_warn_status : warn_category -> Frama_c_kernel.Log.warn_status
val add_group : ?memo:bool -> string -> Frama_c_kernel.Cmdline.Group.t
Create a new group inside the plug-in. The given string must be different of all the other group names of this plug-in if memo
is false
. If memo
is true
the function will either create a fresh group or return an existing group of the same name in the same plugin. memo
defaults to false
module Verbose : Frama_c_kernel.Parameter_sig.Int
module Debug : Frama_c_kernel.Parameter_sig.Int
Handle the specific `share' directory of the plug-in.
Handle the specific `session' directory of the plug-in.
Handle the specific `config' directory of the plug-in.
val help : Frama_c_kernel.Cmdline.Group.t
The group containing option -*-help.
val messages : Frama_c_kernel.Cmdline.Group.t
The group containing options -*-debug and -*-verbose.
Adds aliases to the options -plugin-help, -plugin-verbose, -plugin-log, -plugin-msg-key, and -plugin-warn-key. add_plugin_output_aliases [alias]
adds the aliases -alias-help, -alias-verbose, etc.
include Frama_c_kernel.Parameter_sig.Builder
module Bool (_ : sig ... end) : Frama_c_kernel.Parameter_sig.Bool
module WithOutput (_ : sig ... end) : Frama_c_kernel.Parameter_sig.With_output
module Int (_ : sig ... end) : Frama_c_kernel.Parameter_sig.Int
module String (_ : sig ... end) : Frama_c_kernel.Parameter_sig.String
module Fc_Filepath = Frama_c_kernel.Filepath
module Filepath (_ : sig ... end) : Frama_c_kernel.Parameter_sig.Filepath
module Custom
(X : sig ... end) :
Frama_c_kernel.Parameter_sig.Custom with type t = X.t
Allow using custom types as parameters.
module Enum
(X : sig ... end) :
Frama_c_kernel.Parameter_sig.S with type t = X.t
A fixed set of possible values, represented by a type t
, intended to be a variant with only a finite number of possible constructions. Note that t
must be comparable using Stdlib.compare
.
module Filled_string_set
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.String_set
module Filepath_list
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Filepath_list
module Filepath_map
(V :
Frama_c_kernel.Parameter_sig.Value_datatype
with type key = Fc_Filepath.Normalized.t)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Map
with type key = Fc_Filepath.Normalized.t
and type value = V.t
and type t = V.t Frama_c_kernel.Datatype.Filepath.Map.t
module Make_map
(K : Frama_c_kernel.Parameter_sig.String_datatype_with_collections)
(V : Frama_c_kernel.Parameter_sig.Value_datatype with type key = K.t)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Map
with type key = K.t
and type value = V.t
and type t = V.t K.Map.t
Parameter is a map where multibindings are **not** allowed.
module String_map
(V : Frama_c_kernel.Parameter_sig.Value_datatype with type key = string)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Map
with type key = string
and type value = V.t
and type t = V.t Frama_c_kernel.Datatype.String.Map.t
module Kernel_function_map
(V :
Frama_c_kernel.Parameter_sig.Value_datatype
with type key = Frama_c_kernel.Cil_types.kernel_function)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Map
with type key = Frama_c_kernel.Cil_types.kernel_function
and type value = V.t
and type t = V.t Frama_c_kernel.Cil_datatype.Kf.Map.t
As for Kernel_function_set, by default keys can only be defined functions. Use Parameter_customize.argument_may_be_fundecl
to also include pure prototypes.
module Make_multiple_map
(K : Frama_c_kernel.Parameter_sig.String_datatype_with_collections)
(V :
Frama_c_kernel.Parameter_sig.Multiple_value_datatype with type key = K.t)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Multiple_map
with type key = K.t
and type value = V.t
and type t = V.t list K.Map.t
Parameter is a map where multibindings are allowed.
module String_multiple_map
(V :
Frama_c_kernel.Parameter_sig.Multiple_value_datatype with type key = string)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Multiple_map
with type key = string
and type value = V.t
and type t = V.t list Frama_c_kernel.Datatype.String.Map.t
module Kernel_function_multiple_map
(V :
Frama_c_kernel.Parameter_sig.Multiple_value_datatype
with type key = Frama_c_kernel.Cil_types.kernel_function)
(_ : sig ... end) :
Frama_c_kernel.Parameter_sig.Multiple_map
with type key = Frama_c_kernel.Cil_types.kernel_function
and type value = V.t
and type t = V.t list Frama_c_kernel.Cil_datatype.Kf.Map.t
As for Kernel_function_set, by default keys can only be defined functions. Use Parameter_customize.argument_may_be_fundecl
to also include pure prototypes.
val parameters : unit -> Frama_c_kernel.Typed_parameter.t list