Statistics about Eva analysis

plugins.eva.stats.alarmCategory (DATA)

The alarms are counted after being grouped by these categories

alarmCategory ::= tags…

Tags Value Description
division_by_zero "division_by_zero" Integer division by zero
mem_access "mem_access" Invalid pointer dereferencing
index_bound "index_bound" Array access out of bounds
pointer_alignment "pointer_alignment" Unaligned pointer computation
shift "shift" Invalid shift
overflow "overflow" Integer overflow or downcast
initialization "initialization" Uninitialized memory read
dangling_pointer "dangling_pointer" Read of a dangling pointer
is_nan_or_infinite "is_nan_or_infinite" Non-finite (nan or infinite) floating-point value
float_to_int "float_to_int" Overflow in float to int conversion
other "other" Any other alarm

plugins.eva.stats.alarmCategoryTags (GET)

Registered tags for the above type.

input ::= null

output ::= tag []

plugins.eva.stats.statusesEntry (DATA)

Statuses count.

statusesEntry ::= { "valid" : number , "unknown" : number , "invalid" : number }

plugins.eva.stats.alarmEntry (DATA)

Alarm count for each alarm category.

alarmEntry ::= { "category" : alarmCategory , "count" : number }

plugins.eva.stats.programStatsType (DATA)

Statistics about an Eva analysis.

programStatsType ::= { "progFunCoverage" : { "reachable" : number , "dead" : number } , "progStmtCoverage" : { "reachable" : number , "dead" : number } , "progAlarms" : alarmEntry [] , "evaEvents" : { "errors" : number , "warnings" : number } , "kernelEvents" : { "errors" : number , "warnings" : number } , "alarmsStatuses" : statusesEntry , "assertionsStatuses" : statusesEntry , "precondsStatuses" : statusesEntry }

plugins.eva.stats.programStats (STATE)

Statistics about the last Eva analysis for the whole program

plugins.eva.stats.signalProgramStats (SIGNAL)

Signal for state programStats

plugins.eva.stats.getProgramStats (GET)

Getter for state programStats

input ::= null

output ::= programStatsType

plugins.eva.stats.functionStats (ARRAY)

Statistics about the last Eva analysis for each function

plugins.eva.stats.signalFunctionStats (SIGNAL)

Signal for array functionStats

plugins.eva.stats.functionStatsData (DATA)

Data for array rows functionStats

functionStatsData ::= { fields… }

Field Format Description
"key" decl Entry identifier.
"fctName" string Function name
"coverage" { "reachable" : number , "dead" : number } Coverage of the Eva analysis
"alarmCount" alarmEntry [] Alarms raised by the Eva analysis by category
"alarmStatuses" statusesEntry Alarms statuses emitted by the Eva analysis

plugins.eva.stats.fetchFunctionStats (GET)

Data fetcher for array functionStats

input ::= number

output ::= { output… }

Output Format Description
"reload" boolean array fully reloaded
"removed" decl [] removed entries
"updated" functionStatsData [] updated entries
"pending" number remaining entries to be fetched

plugins.eva.stats.reloadFunctionStats (GET)

Force full reload for array functionStats

input ::= null

output ::= null

plugins.eva.stats.flamegraph (ARRAY)

Data for flamegraph: execution times by callstack

plugins.eva.stats.signalFlamegraph (SIGNAL)

Signal for array flamegraph

plugins.eva.stats.flamegraphData (DATA)

Data for array rows flamegraph

flamegraphData ::= { fields… }

Field Format Description
"key" $flamegraph Entry identifier.
"stackNames" string [] Callstack as functions name list, starting from main
"nbCalls" number Number of times the callstack has been analyzed
"selfTime" number Computation time for the callstack itself
"totalTime" number Total computation time, including functions called
"kfDecl" decl Declaration of the top function

plugins.eva.stats.fetchFlamegraph (GET)

Data fetcher for array flamegraph

input ::= number

output ::= { output… }

Output Format Description
"reload" boolean array fully reloaded
"removed" $flamegraph [] removed entries
"updated" flamegraphData [] updated entries
"pending" number remaining entries to be fetched

plugins.eva.stats.reloadFlamegraph (GET)

Force full reload for array flamegraph

input ::= null

output ::= null