CInstrumentation

de.uni_luebeck.isp.tessla.instrumenter.CInstrumentation$

Contains data structures and a functionality used to instrument C code depending on the provided annotated TeSSLa specification. This makes use of the annotations defined in the standard library InstrumentationAnnotations module, which denote which parts of the code should be instrumented and which events should be produced at those locations.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Type members

Classlikes

final case class ArrayAccess(base: Pattern) extends Pattern

Describes accessing an array, e.g. foo[].

Describes accessing an array, e.g. foo[].

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Pattern
class Object
trait Matchable
class Any
final case class Dereference(base: Pattern) extends Pattern

Describes a de-reference *

Describes a de-reference *

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Pattern
class Object
trait Matchable
class Any
trait IFullFunDesc extends IFunDesc

Extension of a function description by parameter names

Extension of a function description by parameter names

Attributes

Graph
Supertypes
trait IFunDesc
class Object
trait Matchable
class Any
Known subtypes
trait IFunDesc

Describes a C function

Describes a C function

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Defines the callbacks an instrumentation library has to define. The check callbacks are called whenever their respective action (e.g. call, return) occurs in the source code, returning the name of the callback function to be generated in C code, or an empty String if no callback should be generated for this action.

Defines the callbacks an instrumentation library has to define. The check callbacks are called whenever their respective action (e.g. call, return) occurs in the source code, returning the name of the callback function to be generated in C code, or an empty String if no callback should be generated for this action.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
sealed abstract class Pattern

Describes an arbitrary C pattern.

Describes an arbitrary C pattern.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
final case class Reference(base: Pattern) extends Pattern

Describes a reference &

Describes a reference &

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Pattern
class Object
trait Matchable
class Any
final case class StructUnionAccess(base: Pattern, fieldName: String, isArrow: Boolean) extends Pattern

Describes access of a field on a C struct, e.g. foo.a or foo->a.

Describes access of a field on a C struct, e.g. foo.a or foo->a.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Pattern
class Object
trait Matchable
class Any
final case class Variable(functionName: Option[String], name: String) extends Pattern

Describes a variable, optionally prepended by a function name. E.g. foo::x or y.

Describes a variable, optionally prepended by a function name. E.g. foo::x or y.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Pattern
class Object
trait Matchable
class Any

Value members

Concrete fields

val LibraryInterfaceFactory: TesslaPhase[Specification, ILibraryInterface]

Translation phase which creates a library interface from a given specification. This means that the interface already takes into consideration which annotations are used in the specification, to only return callback function names where callbacks should be generated, and type-checking the generated events versus the declared event stream in TeSSLa.

Translation phase which creates a library interface from a given specification. This means that the interface already takes into consideration which annotations are used in the specification, to only return callback function names where callbacks should be generated, and type-checking the generated events versus the declared event stream in TeSSLa.

Attributes