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

Toplevel namespace for libabigail. More...

Namespaces

namespace  abixml
 The namespace for the native XML file format reader.
 
namespace  btf
 Namespace of the reader for the BTF debug information.
 
namespace  comparison
 utilities to compare abi artifacts
 
namespace  ctf
 Namespace of the reader for the CTF debug information.
 
namespace  diff_utils
 Libabigail's core diffing algorithms.
 
namespace  dwarf
 The namespace for the DWARF reader.
 
namespace  elf
 The namespace for the ELF Reader.
 
namespace  hashing
 Namespace for hashing.
 
namespace  ini
 Namespace for handling ini-style files.
 
namespace  ir
 The namespace of the internal representation of ABI artifacts like types and decls.
 
namespace  regex
 Namespace for regex types and functions.
 
namespace  sptr_utils
 Namespace for the utilities to wrap C types into std::shared_ptr.
 
namespace  suppr
 an engine to suppress the parts of the result of comparing two sets of ABI artifacts.
 
namespace  tools_utils
 Namespace for a set of utility function used by tools based on libabigail.
 
namespace  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.
 
namespace  xml
 Internal namespace for xml manipulation utilities.
 
namespace  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

◆ elf_based_reader_sptr

typedef std::shared_ptr<elf_based_reader> elf_based_reader_sptr

Definition at line 70 of file abg-elf-based-reader.h.

◆ fe_iface_sptr

typedef shared_ptr<fe_iface> fe_iface_sptr

Definition at line 154 of file abg-fe-iface.h.

◆ 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 73 of file abg-ir.cc.

◆ string_set_type

typedef unordered_set<string> string_set_type

Definition at line 60 of file abg-fwd.h.

◆ units_type

typedef unsigned short units_type

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

Enumeration Type Documentation

◆ color

enum class color
strong

Color, conversion function.

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

◆ units

enum class 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.

◆ color_to_string()

std::string color_to_string ( color  __val)

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

◆ compare_functions()

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.

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 3661 of file abg-tools-utils.cc.

◆ dump() [1/10]

void 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 4897 of file abg-writer.cc.

◆ dump() [2/10]

void 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 4884 of file abg-writer.cc.

◆ dump() [3/10]

void 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 4963 of file abg-writer.cc.

◆ dump() [4/10]

void 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 4952 of file abg-writer.cc.

◆ dump() [5/10]

void 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 4986 of file abg-writer.cc.

◆ dump() [6/10]

void 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 4974 of file abg-writer.cc.

◆ dump() [7/10]

void 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 4917 of file abg-writer.cc.

◆ dump() [8/10]

void 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 4908 of file abg-writer.cc.

◆ dump() [9/10]

void 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 4941 of file abg-writer.cc.

◆ dump() [10/10]

void 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 4928 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 5032 of file abg-writer.cc.

◆ dump_decl_location() [2/4]

void 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 5024 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 5040 of file abg-writer.cc.

◆ dump_decl_location() [4/4]

void 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 5051 of file abg-writer.cc.

◆ dump_function_names()

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.

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 3637 of file abg-tools-utils.cc.

◆ dump_functions_as_string()

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.

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 3620 of file abg-tools-utils.cc.

◆ dump_location() [1/2]

void 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 5014 of file abg-writer.cc.

◆ dump_location() [2/2]

void 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 4998 of file abg-writer.cc.

◆ operator!=()

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

Definition at line 155 of file abg-ir.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 374 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 402 of file abg-fe-iface.cc.

◆ operator+() [1/2]

std::string 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 185 of file abg-ir.cc.

◆ operator+() [2/2]

std::string 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 199 of file abg-ir.cc.

◆ operator<<()

std::ostream & 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 167 of file abg-ir.cc.

◆ operator==()

bool 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 151 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 360 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 388 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 418 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.

◆ units_to_string()

std::string units_to_string ( units  __val)

Definition at line 63 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.

◆ base_row_sty

const style base_row_sty

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

◆ child_sty

const style child_sty

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

◆ implementation_row_sty

const style implementation_row_sty

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

◆ iso_a4_canvas

const canvas iso_a4_canvas

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

◆ member_row_sty

const style member_row_sty

Definition at line 45 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.

◆ roboto_typo

const typography roboto_typo

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

◆ source_code_pro_typo

const typography source_code_pro_typo

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