libabigail
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
abigail Namespace Reference

Toplevel namespace for libabigail. More...

Namespaces

 abixml
 The namespace for the native XML file format reader.
 
 btf
 Namespace of the reader for the BTF debug information.
 
 comparison
 utilities to compare abi artifacts
 
 ctf
 Namespace of the reader for the CTF debug information.
 
 diff_utils
 Libabigail's core diffing algorithms.
 
 dwarf
 The namespace for the DWARF reader.
 
 elf
 The namespace for the ELF Reader.
 
 hashing
 Namespace for hashing.
 
 ini
 Namespace for handling ini-style files.
 
 ir
 The namespace of the internal representation of ABI artifacts like types and decls.
 
 regex
 Namespace for regex types and functions.
 
 sptr_utils
 Namespace for the utilities to wrap C types into std::shared_ptr.
 
 suppr
 an engine to suppress the parts of the result of comparing two sets of ABI artifacts.
 
 tools_utils
 Namespace for a set of utility function used by tools based on libabigail.
 
 workers
 The namespace of the worker threads (or thread pool) implementation of libabigail. This was modelled after the article https://en.wikipedia.org/wiki/Thread_pool.
 
 xml
 Internal namespace for xml manipulation utilities.
 
 xml_writer
 The namespace for the native XML file format writer.
 

Classes

struct  canvas
 
struct  child_node
 
class  config
 This type abstracts the configuration information of the library. More...
 
struct  dot
 
class  elf_based_reader
 The common interface of readers based on ELF. More...
 
class  fe_iface
 The base class of all libabigail front-ends: The Front End Interface. More...
 
struct  hash_interned_string
 A functor to hash instances of interned_string. More...
 
class  interned_string
 The abstraction of an interned string. More...
 
class  interned_string_pool
 The interned string pool. More...
 
struct  node_base
 Base class for graph nodes. More...
 
struct  parent_node
 
struct  row
 
struct  style
 Datum consolidating style preferences. More...
 
struct  svg
 
struct  typography
 

Typedefs

typedef std::shared_ptr< elf_based_readerelf_based_reader_sptr
 
typedef shared_ptr< fe_ifacefe_iface_sptr
 
typedef unordered_set< interned_string, hash_interned_stringinterned_string_set_type
 Convenience typedef for a set of interned_string. More...
 
typedef unordered_map< string, string * > pool_map_type
 Convenience typedef for a map of string -> string*. More...
 
typedef unordered_set< string > string_set_type
 
typedef unsigned short units_type
 

Enumerations

enum class  color { white , gray25 , gray75 , black }
 Color, conversion function. More...
 
enum class  units { millimeter , pixel }
 Measurement abstraction type, conversion function. More...
 

Functions

void abigail_get_abixml_version (std::string &major, std::string &minor)
 Return the version numbers for the ABIXML format. More...
 
void abigail_get_library_version (std::string &major, std::string &minor, std::string &revision, std::string &suffix)
 Return the relevant version numbers of the library. More...
 
std::string color_to_string (color __val)
 
bool compare_functions (vector< function_decl * >::const_iterator base, unsigned f1_index, unsigned f2_index)
 Compare two functions that are in a vector of functions. More...
 
void dump (const decl_base_sptr d, const bool annotate)
 Serialize a pointer to decl_base to stderr. More...
 
void dump (const decl_base_sptr d, std::ostream &o, const bool annotate)
 Serialize a pointer to decl_base to an output stream. More...
 
void dump (const decl_base_sptr)
 
void dump (const decl_base_sptr, std::ostream &)
 
void dump (const translation_unit &)
 
void dump (const translation_unit &, std::ostream &)
 
void dump (const translation_unit &t, const bool annotate)
 Serialize an instance of translation_unit to stderr. More...
 
void dump (const translation_unit &t, std::ostream &o, const bool annotate)
 Serialize a translation_unit to an output stream. More...
 
void dump (const translation_unit_sptr t, const bool annotate)
 Serialize a pointer to translation_unit to stderr. More...
 
void dump (const translation_unit_sptr t, std::ostream &o, const bool annotate)
 Serialize a pointer to translation_unit to an output stream. More...
 
void dump (const translation_unit_sptr)
 
void dump (const translation_unit_sptr, std::ostream &)
 
void dump (const type_base_sptr t, const bool annotate)
 Serialize a pointer to type_base to stderr. More...
 
void dump (const type_base_sptr t, std::ostream &o, const bool annotate)
 Serialize a pointer to type_base to an output stream. More...
 
void dump (const type_base_sptr)
 
void dump (const type_base_sptr, std::ostream &)
 
void dump (const var_decl_sptr v, const bool annotate)
 Serialize a pointer to var_decl to stderr. More...
 
void dump (const var_decl_sptr v, std::ostream &o, const bool annotate)
 Serialize a pointer to var_decl to an output stream. More...
 
void dump (const var_decl_sptr)
 
void dump (const var_decl_sptr, std::ostream &)
 
void dump_decl_location (const decl_base &d)
 Serialize the source location of a decl to stderr for debugging purposes. More...
 
void dump_decl_location (const decl_base &d, ostream &o)
 Serialize the source location of a decl to an output stream for debugging purposes. More...
 
void dump_decl_location (const decl_base *d)
 Serialize the source location of a dcl to stderr for debugging purposes. More...
 
void dump_decl_location (const decl_base_sptr &)
 
void dump_decl_location (const decl_base_sptr d)
 Serialize the source location of a decl to stderr for debugging purposes. More...
 
void dump_function_names (std::vector< function_decl * >::const_iterator a_begin, std::vector< function_decl * >::const_iterator a_end, std::vector< function_decl * >::const_iterator b_begin, std::vector< function_decl * >::const_iterator b_end)
 Dump (to the standard error output stream) a pretty representation of the signatures of two sequences of functions. More...
 
void dump_functions_as_string (std::vector< function_decl * >::const_iterator a_begin, std::vector< function_decl * >::const_iterator a_end, std::vector< function_decl * >::const_iterator b_begin, std::vector< function_decl * >::const_iterator b_end)
 Dump (to the standard error stream) two sequences of strings where each string represent one of the functions in the two sequences of functions given in argument to this function. More...
 
void dump_location (const location &l)
 Serialize a source location for debugging purposes. More...
 
void dump_location (const location &l, ostream &o)
 Serialize a source location to an output stream. More...
 
bool operator!= (const std::string &l, const interned_string &r)
 
bool operator!= (const string &l, const interned_string &r)
 
fe_iface::status operator& (fe_iface::status l, fe_iface::status r)
 The bitwise AND operator for the fe_iface::status type. More...
 
fe_iface::statusoperator&= (fe_iface::status &l, fe_iface::status r)
 The bitwise &= operator for the fe_iface::status type. More...
 
std::string operator+ (const interned_string &s1, const std::string &s2)
 Concatenation operator. More...
 
string operator+ (const interned_string &s1, const string &s2)
 
std::string operator+ (const std::string &s1, const interned_string &s2)
 Concatenation operator. More...
 
string operator+ (const string &s1, const interned_string &s2)
 
ostream & operator<< (ostream &o, const interned_string &s)
 
std::ostream & operator<< (std::ostream &o, const interned_string &s)
 Streaming operator. More...
 
bool operator== (const std::string &l, const interned_string &r)
 Equality operator. More...
 
bool operator== (const string &l, const interned_string &r)
 
fe_iface::status operator| (fe_iface::status l, fe_iface::status r)
 The bitwise OR operator for the fe_iface::status type. More...
 
fe_iface::statusoperator|= (fe_iface::status &l, fe_iface::status r)
 The bitwise |= operator for the fe_iface::status type. More...
 
std::string status_to_diagnostic_string (fe_iface::status s)
 Return a diagnostic status with english sentences to describe the problems encoded in a given abigail::elf_reader::status, if there is an error. More...
 
void string_replace (std::string &, const std::string &, const std::string &)
 Utility function, like regex_replace. More...
 
std::string units_to_string (units __val)
 

Variables

const canvas ansi_letter_canvas
 Useful canvas constants. More...
 
const typography arial_typo
 Useful typography constants. More...
 
const style base_row_sty
 
const style child_sty
 
const style implementation_row_sty
 
const canvas iso_a4_canvas
 
const style member_row_sty
 
const style parent_sty
 Useful constants. More...
 
const style primary_row_sty
 Useful row constants. Maybe just do enum->value map. More...
 
const typography roboto_light_typo
 
const typography roboto_typo
 
const typography source_code_pro_typo
 

Detailed Description

Toplevel namespace for libabigail.

Typedef Documentation

◆ interned_string_set_type

Convenience typedef for a set of interned_string.

Definition at line 249 of file abg-interned-str.h.

◆ pool_map_type

typedef unordered_map<string, string*> pool_map_type

Convenience typedef for a map of string -> string*.

Definition at line 75 of file abg-ir.cc.

Enumeration Type Documentation

◆ color

enum color
strong

Color, conversion function.

Definition at line 60 of file abg-viz-common.h.

◆ units

enum units
strong

Measurement abstraction type, conversion function.

Definition at line 25 of file abg-viz-common.h.

Function Documentation

◆ abigail_get_abixml_version()

void abigail_get_abixml_version ( std::string &  major,
std::string &  minor 
)

Return the version numbers for the ABIXML format.

Parameters
majthe major version number of the ABIXML format.
minthe minor version number of the ABIXML format.

Definition at line 98 of file abg-config.cc.

◆ abigail_get_library_version()

void abigail_get_library_version ( std::string &  major,
std::string &  minor,
std::string &  revision,
std::string &  suffix 
)

Return the relevant version numbers of the library.

Parameters
majthe major version number of the library.
minthe minor version number of the library.
revthe revision version number of the library.
sufthe version suffix of the library.

Definition at line 81 of file abg-config.cc.

◆ compare_functions()

bool abigail::compare_functions ( vector< function_decl * >::const_iterator  base,
unsigned  f1_index,
unsigned  f2_index 
)

Compare two functions that are in a vector of functions.

Parameters
aniterator to the beginning of the the sequence of functions.
f1_indexthe index of the first function to compare.
f2_indethe index of the second function to compare

Definition at line 3328 of file abg-tools-utils.cc.

◆ dump() [1/10]

void abigail::dump ( const decl_base_sptr  d,
const bool  annotate 
)

Serialize a pointer to decl_base to stderr.

Parameters
dthe pointer to decl_base to serialize.
annotatewhether ABIXML output should be annotated.

Definition at line 4978 of file abg-writer.cc.

◆ dump() [2/10]

void abigail::dump ( const decl_base_sptr  d,
std::ostream &  o,
const bool  annotate 
)

Serialize a pointer to decl_base to an output stream.

Parameters
dthe pointer to decl_base to serialize.
othe output stream to consider.
annotatewhether ABIXML output should be annotated.

Definition at line 4965 of file abg-writer.cc.

◆ dump() [3/10]

void abigail::dump ( const translation_unit t,
const bool  annotate 
)

Serialize an instance of translation_unit to stderr.

Parameters
tthe translation_unit to serialize.

Definition at line 5044 of file abg-writer.cc.

◆ dump() [4/10]

void abigail::dump ( const translation_unit t,
std::ostream &  o,
const bool  annotate 
)

Serialize a translation_unit to an output stream.

Parameters
tthe translation_unit to serialize.
othe outpout stream to serialize the translation_unit to.
annotatewhether ABIXML output should be annotated.

Definition at line 5033 of file abg-writer.cc.

◆ dump() [5/10]

void abigail::dump ( const translation_unit_sptr  t,
const bool  annotate 
)

Serialize a pointer to translation_unit to stderr.

Parameters
tthe translation_unit_sptr to serialize.
annotatewhether ABIXML output should be annotated.

Definition at line 5067 of file abg-writer.cc.

◆ dump() [6/10]

void abigail::dump ( const translation_unit_sptr  t,
std::ostream &  o,
const bool  annotate 
)

Serialize a pointer to translation_unit to an output stream.

Parameters
tthe translation_unit_sptr to serialize.
othe output stream to serialize the translation unit to.
annotatewhether ABIXML output should be annotated.

Definition at line 5055 of file abg-writer.cc.

◆ dump() [7/10]

void abigail::dump ( const type_base_sptr  t,
const bool  annotate 
)

Serialize a pointer to type_base to stderr.

Parameters
tthe pointer to type_base to serialize.
annotatewhether ABIXML output should be annotated.

Definition at line 4998 of file abg-writer.cc.

◆ dump() [8/10]

void abigail::dump ( const type_base_sptr  t,
std::ostream &  o,
const bool  annotate 
)

Serialize a pointer to type_base to an output stream.

Parameters
tthe pointer to type_base to serialize.
othe output stream to serialize the type_base to.
annotatewhether ABIXML output should be annotated.

Definition at line 4989 of file abg-writer.cc.

◆ dump() [9/10]

void abigail::dump ( const var_decl_sptr  v,
const bool  annotate 
)

Serialize a pointer to var_decl to stderr.

Parameters
vthe pointer to var_decl to serialize.
annotatewhether ABIXML output should be annotated.

Definition at line 5022 of file abg-writer.cc.

◆ dump() [10/10]

void abigail::dump ( const var_decl_sptr  v,
std::ostream &  o,
const bool  annotate 
)

Serialize a pointer to var_decl to an output stream.

Parameters
vthe pointer to var_decl to serialize.
othe output stream to serialize the var_decl to.
annotatewhether ABIXML output should be annotated.

Definition at line 5009 of file abg-writer.cc.

◆ dump_decl_location() [1/4]

void dump_decl_location ( const decl_base d)

Serialize the source location of a decl to stderr for debugging purposes.

Parameters
dthe declaration to consider.

Definition at line 5113 of file abg-writer.cc.

◆ dump_decl_location() [2/4]

void abigail::dump_decl_location ( const decl_base d,
ostream &  o 
)

Serialize the source location of a decl to an output stream for debugging purposes.

Parameters
dthe declaration to consider.
othe output stream to serizalize the location to.

Definition at line 5105 of file abg-writer.cc.

◆ dump_decl_location() [3/4]

void dump_decl_location ( const decl_base d)

Serialize the source location of a dcl to stderr for debugging purposes.

Parameters
dthe declaration to consider.

Definition at line 5121 of file abg-writer.cc.

◆ dump_decl_location() [4/4]

void abigail::dump_decl_location ( const decl_base_sptr  d)

Serialize the source location of a decl to stderr for debugging purposes.

Parameters
dthe declaration to consider.

Definition at line 5132 of file abg-writer.cc.

◆ dump_function_names()

void abigail::dump_function_names ( std::vector< function_decl * >::const_iterator  a_begin,
std::vector< function_decl * >::const_iterator  a_end,
std::vector< function_decl * >::const_iterator  b_begin,
std::vector< function_decl * >::const_iterator  b_end 
)

Dump (to the standard error output stream) a pretty representation of the signatures of two sequences of functions.

Parameters
a_beginthe start iterator of the first input sequence of functions.
a_endthe end iterator of the first input sequence of functions.
b_beginthe start iterator of the second input sequence of functions.
b_endthe end iterator of the second input sequence of functions.

Definition at line 3304 of file abg-tools-utils.cc.

◆ dump_functions_as_string()

void abigail::dump_functions_as_string ( std::vector< function_decl * >::const_iterator  a_begin,
std::vector< function_decl * >::const_iterator  a_end,
std::vector< function_decl * >::const_iterator  b_begin,
std::vector< function_decl * >::const_iterator  b_end 
)

Dump (to the standard error stream) two sequences of strings where each string represent one of the functions in the two sequences of functions given in argument to this function.

Parameters
a_beginthe begin iterator for the first input sequence of functions.

@parm a_end the end iterator for the first input sequence of functions.

Parameters
b_beginthe begin iterator for the second input sequence of functions.
b_endthe end iterator for the second input sequence of functions.

Definition at line 3287 of file abg-tools-utils.cc.

◆ dump_location() [1/2]

void abigail::dump_location ( const location l)

Serialize a source location for debugging purposes.

The location is serialized to the standard error output stream.

Parameters
lthe declaration to consider.

Definition at line 5095 of file abg-writer.cc.

◆ dump_location() [2/2]

void abigail::dump_location ( const location l,
ostream &  o 
)

Serialize a source location to an output stream.

Parameters
lthe declaration to consider.
othe output stream to serialize to.

Definition at line 5079 of file abg-writer.cc.

◆ operator&()

The bitwise AND operator for the fe_iface::status type.

Parameters
lthe left-hand side operand.
rthe right-hand side operand.
Returns
the result of the operation.

Definition at line 375 of file abg-fe-iface.cc.

◆ operator&=()

fe_iface::status & operator&= ( fe_iface::status l,
fe_iface::status  r 
)

The bitwise &= operator for the fe_iface::status type.

Parameters
lthe left-hand side operand.
rthe right-hand side operand.
Returns
the result of the operation.

Definition at line 403 of file abg-fe-iface.cc.

◆ operator+() [1/2]

std::string abigail::operator+ ( const interned_string s1,
const std::string &  s2 
)

Concatenation operator.

Concatenate two instances of interned_string, builds an instance of std::string with the resulting string and return it.

Parameters
s1the first string to consider.
s2the second string to consider.
Returns
the resuting concatenated string.

Definition at line 187 of file abg-ir.cc.

◆ operator+() [2/2]

std::string abigail::operator+ ( const std::string &  s1,
const interned_string s2 
)

Concatenation operator.

Concatenate two instances of interned_string, builds an instance of std::string with the resulting string and return it.

Parameters
s1the first string to consider.
s2the second string to consider.
Returns
the resuting concatenated string.

Definition at line 201 of file abg-ir.cc.

◆ operator<<()

std::ostream& abigail::operator<< ( std::ostream &  o,
const interned_string s 
)

Streaming operator.

Streams an instance of interned_string to an output stream.

Parameters
othe destination output stream.
sthe instance of interned_string to stream out.
Returns
the output stream this function just streamed to.

Definition at line 169 of file abg-ir.cc.

◆ operator==()

bool abigail::operator== ( const std::string &  l,
const interned_string r 
)

Equality operator.

Parameters
lthe instance of std::string on the left-hand-side of the equality operator.
rthe instance of interned_string on the right-hand-side of the equality operator.
Returns
true iff the two string are equal.

Definition at line 153 of file abg-ir.cc.

◆ operator|()

The bitwise OR operator for the fe_iface::status type.

Parameters
lthe left-hand side operand.
rthe right-hand side operand.
Returns
the result of the operation.

Definition at line 361 of file abg-fe-iface.cc.

◆ operator|=()

fe_iface::status & operator|= ( fe_iface::status l,
fe_iface::status  r 
)

The bitwise |= operator for the fe_iface::status type.

Parameters
lthe left-hand side operand.
rthe right-hand side operand.
Returns
the result of the operation.

Definition at line 389 of file abg-fe-iface.cc.

◆ status_to_diagnostic_string()

std::string status_to_diagnostic_string ( fe_iface::status  s)

Return a diagnostic status with english sentences to describe the problems encoded in a given abigail::elf_reader::status, if there is an error.

Parameters
statusthe status to diagnose
Returns
a string containing sentences that describe the possible errors encoded in s. If there is no error to encode, then the empty string is returned.

Definition at line 419 of file abg-fe-iface.cc.

◆ string_replace()

void string_replace ( std::string &  target,
const std::string &  match,
const std::string &  replace 
)

Utility function, like regex_replace.

Definition at line 51 of file abg-viz-common.cc.

Variable Documentation

◆ ansi_letter_canvas

const canvas ansi_letter_canvas

Useful canvas constants.

Definition at line 31 of file abg-viz-common.cc.

◆ arial_typo

const typography arial_typo

Useful typography constants.

Definition at line 34 of file abg-viz-common.cc.

◆ parent_sty

const style parent_sty

Useful constants.

Definition at line 25 of file abg-viz-dot.cc.

◆ primary_row_sty

const style primary_row_sty

Useful row constants. Maybe just do enum->value map.

Definition at line 43 of file abg-viz-common.cc.