xerus
a general purpose tensor library
xerus::misc::internal::bfdResolver Struct Reference

class to load symbols and resolve address pointers More...

Collaboration diagram for xerus::misc::internal::bfdResolver:

Classes

struct  storedBfd
 relevant information belonging to a single bfd More...
 

Static Public Member Functions

static bool ensure_bfd_loaded (Dl_info &_info)
 
static std::pair< uintptr_t, uintptr_t > get_range_of_section (void *_addr, std::string _name)
 
static std::string resolve (void *address)
 

Static Public Attributes

static bool bfd_initialized = false
 
static std::map< void *, storedBfdbfds
 

Detailed Description

class to load symbols and resolve address pointers

uses binutils to interpret bfds. caches the bfd data to only read them once per run of the application for the use of dladdr see also https://sourceware.org/git/?p=glibc.git;a=blob;f=debug/backtracesyms.c

Definition at line 46 of file callStack.cpp.

Member Function Documentation

◆ ensure_bfd_loaded()

static bool xerus::misc::internal::bfdResolver::ensure_bfd_loaded ( Dl_info &  _info)
inlinestatic

Definition at line 58 of file callStack.cpp.

◆ get_range_of_section()

static std::pair<uintptr_t, uintptr_t> xerus::misc::internal::bfdResolver::get_range_of_section ( void *  _addr,
std::string  _name 
)
inlinestatic

Definition at line 80 of file callStack.cpp.

◆ resolve()

static std::string xerus::misc::internal::bfdResolver::resolve ( void *  address)
inlinestatic

Definition at line 105 of file callStack.cpp.

Member Data Documentation

◆ bfd_initialized

bool xerus::misc::internal::bfdResolver::bfd_initialized = false
static

Definition at line 56 of file callStack.cpp.

◆ bfds

std::map< void *, bfdResolver::storedBfd > xerus::misc::internal::bfdResolver::bfds
static

Definition at line 55 of file callStack.cpp.


The documentation for this struct was generated from the following file: