Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
dwdebug.h File Reference
#include <stdint.h>
#include <stdio.h>
#include <glib.h>
#include <wchar.h>
#include <sys/types.h>
#include <regex.h>
#include <elfutils/libdw.h>
#include <elfutils/libdwfl.h>
#include <elfutils/libebl.h>
#include "debugpred.h"
#include "list.h"
#include "alist.h"
#include "rfilter.h"
#include "config.h"
#include "log.h"
#include "output.h"
#include "common.h"
#include "clfit.h"
#include "elfutils/version.h"
Include dependency graph for dwdebug.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  debugfile_load_opts
 
struct  debugfile
 
struct  dwarf_cu_die_ref
 
struct  lsymbol
 

Macros

#define _INT_ELFUTILS_VERSION   _ELFUTILS_VERSION
 
#define DWDEBUG_DEF_DELIM   "."
 
#define LOAD_TYPE_BITS   2
 
#define SYMBOL_TYPE_BITS   3
 
#define SYMBOL_SOURCE_BITS   2
 
#define DATATYPE_CODE_BITS   4
 
#define SRCLINE_BITS   20
 

Typedefs

typedef int debugfile_type_flags_t
 

Enumerations

enum  debugfile_load_flags_t {
  DEBUGFILE_LOAD_FLAG_NONE = 0, DEBUGFILE_LOAD_FLAG_CUHEADERS = 1 << 0, DEBUGFILE_LOAD_FLAG_PUBNAMES = 1 << 1, DEBUGFILE_LOAD_FLAG_NODWARF = 1 << 2,
  DEBUGFILE_LOAD_FLAG_ALLRANGES = 1 << 3, DEBUGFILE_LOAD_FLAG_KEEPDECLS = 1 << 4, DEBUGFILE_LOAD_FLAG_PARTIALSYM = 1 << 8, DEBUGFILE_LOAD_FLAG_REDUCETYPES = 1 << 17,
  DEBUGFILE_LOAD_FLAG_REDUCETYPES_FULL_EQUIV = 1 << 18
}
 
enum  symbol_type_t {
  SYMBOL_TYPE_NONE = 0, SYMBOL_TYPE_ROOT = 1, SYMBOL_TYPE_TYPE = 2, SYMBOL_TYPE_VAR = 3,
  SYMBOL_TYPE_FUNC = 4, SYMBOL_TYPE_LABEL = 5, SYMBOL_TYPE_BLOCK = 6
}
 
enum  symbol_source_t { SYMBOL_SOURCE_DWARF = 0, SYMBOL_SOURCE_ELF = 1, SYMBOL_SOURCE_PHP = 2 }
 
enum  load_type_t { LOADTYPE_UNLOADED = 0, LOADTYPE_FULL = 1, LOADTYPE_PARTIAL = 2 }
 
enum  symbol_type_flag_t {
  SYMBOL_TYPE_FLAG_NONE = 0, SYMBOL_TYPE_FLAG_ROOT = 1 << SYMBOL_TYPE_ROOT, SYMBOL_TYPE_FLAG_TYPE = 1 << SYMBOL_TYPE_TYPE, SYMBOL_TYPE_FLAG_VAR = 1 << SYMBOL_TYPE_VAR,
  SYMBOL_TYPE_FLAG_FUNC = 1 << SYMBOL_TYPE_FUNC, SYMBOL_TYPE_FLAG_LABEL = 1 << SYMBOL_TYPE_LABEL, SYMBOL_TYPE_FLAG_BLOCK = 1 << SYMBOL_TYPE_BLOCK, SYMBOL_TYPE_FLAG_VAR_ARG = 1 << 24,
  SYMBOL_TYPE_FLAG_VAR_LOCAL = 1 << 25, SYMBOL_TYPE_FLAG_VAR_GLOBAL = 1 << 26, SYMBOL_TYPE_FLAG_VAR_MEMBER = 1 << 27
}
 
enum  datatype_code_t {
  DATATYPE_VOID = 0, DATATYPE_ARRAY = 1, DATATYPE_STRUCT = 2, DATATYPE_ENUM = 3,
  DATATYPE_PTR = 4, DATATYPE_REF = 5, DATATYPE_FUNC = 6, DATATYPE_TYPEDEF = 7,
  DATATYPE_UNION = 8, DATATYPE_BASE = 9, DATATYPE_CONST = 10, DATATYPE_VOL = 11,
  DATATYPE_NAMESPACE = 12, DATATYPE_CLASS = 13, DATATYPE_TEMPLATE = 14, DATATYPE_DYNAMIC = 15
}
 
enum  loctype_t {
  LOCTYPE_ADDR_ERR = -1, LOCTYPE_UNKNOWN = 0, LOCTYPE_ADDR = 1, LOCTYPE_REG = 2,
  LOCTYPE_REG_ADDR = 3, LOCTYPE_REG_OFFSET = 4, LOCTYPE_MEMBER_OFFSET = 5, LOCTYPE_FBREG_OFFSET = 6,
  LOCTYPE_LOCLIST = 7, LOCTYPE_REALADDR = 8, LOCTYPE_IMPLICIT_WORD = 9, LOCTYPE_IMPLICIT_DATA = 10,
  LOCTYPE_RUNTIME = 11
}
 
enum  encoding_t {
  ENCODING_ADDRESS = 1, ENCODING_BOOLEAN = 2, ENCODING_COMPLEX_FLOAT = 3, ENCODING_FLOAT = 4,
  ENCODING_SIGNED = 5, ENCODING_SIGNED_CHAR =6, ENCODING_UNSIGNED = 7, ENCODING_UNSIGNED_CHAR = 8,
  ENCODING_IMAGINARY_FLOAT = 9, ENCODING_PACKED_DECIMAL = 10, ENCODING_NUMERIC_STRING = 11, ENCODING_EDITED = 12,
  ENCODING_SIGNED_FIXED = 13, ENCODING_UNSIGNED_FIXED = 14, ENCODING_STRING = 32, ENCODING_HASH = 33
}
 
enum  debugfile_type_t { DEBUGFILE_TYPE_NONE = 0, DEBUGFILE_TYPE_ELF = 1 << 0, DEBUGFILE_TYPE_DWARF = 1 << 1, DEBUGFILE_TYPE_PHP = 1 << 1 }
 
enum  debugfile_type_flag_t { DEBUGFILE_TYPE_FLAG_NONE = 0, DEBUGFILE_TYPE_FLAG_KERNEL = 1 << 0, DEBUGFILE_TYPE_FLAG_KMOD = 1 << 1 }
 

Functions

void dwdebug_init (void)
 
void dwdebug_fini (void)
 
void dwdebug_evict (struct debugfile *debugfile)
 
void dwdebug_evict_all (void)
 
char * SYMBOL_TYPE (int n)
 
char * SYMBOL_SOURCE (int n)
 
char * DATATYPE (int n)
 
struct locationlocation_create (void)
 
void location_free (struct location *location)
 
struct debugfiledebugfile_from_file (char *filename, char *root_prefix, struct array_list *debugfile_load_opts_list)
 
struct debugfiledebugfile_from_instance (struct binfile_instance *bfinst, struct array_list *debugfile_load_opts_list)
 
struct debugfiledebugfile_from_binfile (struct binfile *binfile, struct array_list *debugfile_load_opts_list)
 
char * debugfile_search_path (char *filename, char *root_prefix, char *debug_postfix, const char *DFPATH[], char *buf, int buflen)
 
struct array_listdebugfile_get_loaded_debugfiles ()
 
struct debugfile_load_optsdebugfile_load_opts_parse (char *optstr)
 
int debugfile_load_opts_checklist (struct array_list *opts_list, char *name, struct debugfile_load_opts **match_saveptr)
 
void debugfile_load_opts_free (struct debugfile_load_opts *opts)
 
char * debugfile_get_name (struct debugfile *debugfile)
 
char * debugfile_get_version (struct debugfile *debugfile)
 
int debugfile_filename_info (char *filename, char **realfilename, char **name, char **version)
 
void debugfile_dump (struct debugfile *debugfile, struct dump_info *ud, int types, int globals, int symtabs, int elfsymtab, int doranges)
 
struct symbolsymbol_create (symbol_type_t symtype, symbol_source_t source, char *name, int name_copy, SMOFFSET offset, load_type_t loadtype, struct scope *scope)
 
char * symbol_get_name (struct symbol *symbol)
 
char * symbol_get_name_inline (struct symbol *symbol)
 
char * symbol_get_srcfile (struct symbol *symbol)
 
int symbol_get_srcline (struct symbol *symbol)
 
char * symbol_get_compdirname (struct symbol *symbol)
 
symbol_type_t symbol_get_type (struct symbol *symbol)
 
symbol_source_t symbol_get_source (struct symbol *symbol)
 
struct symbolsymbol_get_datatype (struct symbol *symbol)
 
struct symbolsymbol_get_datatype_real (struct symbol *symbol)
 
struct symbolsymbol_get_inline_origin (struct symbol *symbol)
 
int symbol_is_synthetic (struct symbol *symbol)
 
int symbol_is_external (struct symbol *symbol)
 
int symbol_is_definition (struct symbol *symbol)
 
int symbol_is_declaration (struct symbol *symbol)
 
int symbol_is_decldefined (struct symbol *symbol)
 
int symbol_is_prototyped (struct symbol *symbol)
 
int symbol_is_parameter (struct symbol *symbol)
 
int symbol_is_member (struct symbol *symbol)
 
int symbol_is_enumerator (struct symbol *symbol)
 
int symbol_is_inlineinstance (struct symbol *symbol)
 
int symbol_has_addr (struct symbol *symbol)
 
int symbol_has_unspecified_parameters (struct symbol *symbol)
 
int symbol_is_inlined (struct symbol *symbol)
 
int symbol_is_declinline (struct symbol *symbol)
 
int symbol_is_bitsize (struct symbol *symbol)
 
int symbol_is_bytesize (struct symbol *symbol)
 
uint32_t symbol_get_bytesize (struct symbol *symbol)
 
uint32_t symbol_get_bitsize (struct symbol *symbol)
 
uint32_t symbol_get_bitoffset (struct symbol *symbol)
 
uint32_t symbol_get_bitctbytes (struct symbol *symbol)
 
ADDR symbol_get_addr (struct symbol *symbol)
 
int symbol_type_flags_match (struct symbol *symbol, symbol_type_flag_t flags)
 
struct symbolsymbol_find_parent (struct symbol *symbol)
 
struct symbolsymbol_find_root (struct symbol *symbol)
 
int symbol_contains_addr (struct symbol *symbol, ADDR obj_addr)
 
int symbol_type_equal (struct symbol *t1, struct symbol *t2, GHashTable *eqcache, GHashTable *updated_datatype_refs)
 
int symbol_type_is_char (struct symbol *type)
 
unsigned int symbol_type_array_bytesize (struct symbol *type)
 
unsigned int symbol_type_full_bytesize (struct symbol *type)
 
struct symbolsymbol_type_skip_ptrs (struct symbol *type)
 
struct symbolsymbol_type_skip_qualifiers (struct symbol *type)
 
void symbol_dump (struct symbol *symbol, struct dump_info *ud)
 
void symbol_type_dump (struct symbol *symbol, struct dump_info *ud)
 
void symbol_function_dump (struct symbol *symbol, struct dump_info *ud)
 
void symbol_var_dump (struct symbol *symbol, struct dump_info *ud)
 
GSList * symbol_get_ordered_members (struct symbol *symbol, symbol_type_flag_t flags)
 
GSList * symbol_get_members (struct symbol *symbol, symbol_type_flag_t flags)
 
loctype_t symbol_resolve_location (struct symbol *symbol, struct location_ctxt *lctxt, struct location *o_loc)
 
int symbol_resolve_bounds (struct symbol *symbol, struct location_ctxt *lctxt, ADDR *start, ADDR *end, int *is_noncontiguous, ADDR *o_alt_start, ADDR *o_alt_end)
 
loctype_t lsymbol_resolve_location (struct lsymbol *lsymbol, ADDR base_addr, struct location_ctxt *lctxt, struct location *o_loc)
 
int lsymbol_resolve_bounds (struct lsymbol *lsymbol, ADDR base_addr, struct location_ctxt *lctxt, ADDR *start, ADDR *end, int *is_noncontiguous, ADDR *alt_start, ADDR *alt_end)
 
void symbol_hold (struct symbol *symbol)
 
REFCNT symbol_release (struct symbol *symbol)
 
struct lsymbollsymbol_create_from_member (struct lsymbol *parent, struct symbol *member)
 
struct lsymbollsymbol_create_noninline (struct lsymbol *lsymbol)
 
struct lsymbollsymbol_create_from_symbol (struct symbol *symbol)
 
char * lsymbol_get_name (struct lsymbol *lsymbol)
 
struct symbollsymbol_get_symbol (struct lsymbol *lsymbol)
 
struct symbollsymbol_get_noninline_parent_symbol (struct lsymbol *lsymbol)
 
void lsymbol_dump (struct lsymbol *lsymbol, struct dump_info *ud)
 
REFCNT lsymbol_release (struct lsymbol *lsymbol)
 
struct scopescope_lookup_addr (struct scope *scope, ADDR pc)
 
struct lsymboldebugfile_lookup_sym (struct debugfile *debugfile, char *name, const char *delim, struct rfilter *srcfile_filter, symbol_type_flag_t flags)
 
OFFSET symbol_offsetof (struct symbol *symbol, const char *name, const char *delim)
 
OFFSET lsymbol_offsetof (struct lsymbol *lsymbol, const char *name, const char *delim)
 
GSList * debugfile_match_syms (struct debugfile *debugfile, struct rfilter *symbol_filter, symbol_type_flag_t flags, struct rfilter *srcfile_filter)
 
struct lsymboldebugfile_lookup_addr (struct debugfile *debugfile, ADDR addr)
 
struct array_listdebugfile_lookup_addrs_line (struct debugfile *debugfile, char *filename, int line)
 
int debugfile_lookup_line_addr (struct debugfile *debugfile, char *filename, ADDR addr)
 
int debugfile_lookup_filename_line_addr (struct debugfile *debugfile, ADDR addr, char **filename, int *line)
 
struct lsymboldebugfile_lookup_sym_line (struct debugfile *debugfile, char *filename, int line, SMOFFSET *offset, ADDR *addr)
 
struct lsymbollsymbol_lookup_sym (struct lsymbol *lsymbol, const char *name, const char *delim)
 
struct symbolsymbol_get_sym (struct symbol *symbol, const char *name, symbol_type_flag_t flags)
 
struct lsymbolsymbol_lookup_sym (struct symbol *symbol, const char *name, const char *delim)
 
struct lsymbollsymbol_clone (struct lsymbol *lsymbol, struct symbol *newchild)
 
struct symbolsymbol_get_one_member (struct symbol *symbol, char *member)
 
struct symbolsymbol_get_member (struct symbol *symbol, char *memberlist, const char *delim)
 
int symbol_visible_at_ip (struct symbol *symbol, ADDR ip)
 

Macro Definition Documentation

#define _INT_ELFUTILS_VERSION   _ELFUTILS_VERSION

Definition at line 47 of file dwdebug.h.

#define DATATYPE_CODE_BITS   4

Definition at line 184 of file dwdebug.h.

#define DWDEBUG_DEF_DELIM   "."

Definition at line 50 of file dwdebug.h.

#define LOAD_TYPE_BITS   2

Definition at line 181 of file dwdebug.h.

#define SRCLINE_BITS   20

Definition at line 185 of file dwdebug.h.

#define SYMBOL_SOURCE_BITS   2

Definition at line 183 of file dwdebug.h.

#define SYMBOL_TYPE_BITS   3

Definition at line 182 of file dwdebug.h.

Typedef Documentation

Definition at line 782 of file dwdebug.h.

Enumeration Type Documentation

Enumerator
DATATYPE_VOID 
DATATYPE_ARRAY 
DATATYPE_STRUCT 
DATATYPE_ENUM 
DATATYPE_PTR 
DATATYPE_REF 
DATATYPE_FUNC 
DATATYPE_TYPEDEF 
DATATYPE_UNION 
DATATYPE_BASE 
DATATYPE_CONST 
DATATYPE_VOL 
DATATYPE_NAMESPACE 
DATATYPE_CLASS 
DATATYPE_TEMPLATE 
DATATYPE_DYNAMIC 

Definition at line 208 of file dwdebug.h.

Enumerator
DEBUGFILE_LOAD_FLAG_NONE 
DEBUGFILE_LOAD_FLAG_CUHEADERS 
DEBUGFILE_LOAD_FLAG_PUBNAMES 
DEBUGFILE_LOAD_FLAG_NODWARF 
DEBUGFILE_LOAD_FLAG_ALLRANGES 
DEBUGFILE_LOAD_FLAG_KEEPDECLS 
DEBUGFILE_LOAD_FLAG_PARTIALSYM 
DEBUGFILE_LOAD_FLAG_REDUCETYPES 
DEBUGFILE_LOAD_FLAG_REDUCETYPES_FULL_EQUIV 

Definition at line 99 of file dwdebug.h.

Enumerator
DEBUGFILE_TYPE_FLAG_NONE 
DEBUGFILE_TYPE_FLAG_KERNEL 
DEBUGFILE_TYPE_FLAG_KMOD 

Definition at line 777 of file dwdebug.h.

Enumerator
DEBUGFILE_TYPE_NONE 
DEBUGFILE_TYPE_ELF 
DEBUGFILE_TYPE_DWARF 
DEBUGFILE_TYPE_PHP 

Definition at line 770 of file dwdebug.h.

enum encoding_t
Enumerator
ENCODING_ADDRESS 
ENCODING_BOOLEAN 
ENCODING_COMPLEX_FLOAT 
ENCODING_FLOAT 
ENCODING_SIGNED 
ENCODING_SIGNED_CHAR 
ENCODING_UNSIGNED 
ENCODING_UNSIGNED_CHAR 
ENCODING_IMAGINARY_FLOAT 
ENCODING_PACKED_DECIMAL 
ENCODING_NUMERIC_STRING 
ENCODING_EDITED 
ENCODING_SIGNED_FIXED 
ENCODING_UNSIGNED_FIXED 
ENCODING_STRING 
ENCODING_HASH 

Definition at line 266 of file dwdebug.h.

Enumerator
LOADTYPE_UNLOADED 
LOADTYPE_FULL 
LOADTYPE_PARTIAL 

Definition at line 166 of file dwdebug.h.

enum loctype_t
Enumerator
LOCTYPE_ADDR_ERR 
LOCTYPE_UNKNOWN 
LOCTYPE_ADDR 
LOCTYPE_REG 
LOCTYPE_REG_ADDR 
LOCTYPE_REG_OFFSET 
LOCTYPE_MEMBER_OFFSET 
LOCTYPE_FBREG_OFFSET 
LOCTYPE_LOCLIST 
LOCTYPE_REALADDR 
LOCTYPE_IMPLICIT_WORD 
LOCTYPE_IMPLICIT_DATA 
LOCTYPE_RUNTIME 

Definition at line 234 of file dwdebug.h.

Enumerator
SYMBOL_SOURCE_DWARF 
SYMBOL_SOURCE_ELF 
SYMBOL_SOURCE_PHP 

Definition at line 159 of file dwdebug.h.

Enumerator
SYMBOL_TYPE_FLAG_NONE 
SYMBOL_TYPE_FLAG_ROOT 
SYMBOL_TYPE_FLAG_TYPE 
SYMBOL_TYPE_FLAG_VAR 
SYMBOL_TYPE_FLAG_FUNC 
SYMBOL_TYPE_FLAG_LABEL 
SYMBOL_TYPE_FLAG_BLOCK 
SYMBOL_TYPE_FLAG_VAR_ARG 
SYMBOL_TYPE_FLAG_VAR_LOCAL 
SYMBOL_TYPE_FLAG_VAR_GLOBAL 
SYMBOL_TYPE_FLAG_VAR_MEMBER 

Definition at line 190 of file dwdebug.h.

Enumerator
SYMBOL_TYPE_NONE 
SYMBOL_TYPE_ROOT 
SYMBOL_TYPE_TYPE 
SYMBOL_TYPE_VAR 
SYMBOL_TYPE_FUNC 
SYMBOL_TYPE_LABEL 
SYMBOL_TYPE_BLOCK 

Definition at line 148 of file dwdebug.h.

Function Documentation

char* DATATYPE ( int  n)
inline

Definition at line 5684 of file debug.c.

void debugfile_dump ( struct debugfile debugfile,
struct dump_info ud,
int  types,
int  globals,
int  symtabs,
int  elfsymtab,
int  doranges 
)

Definition at line 4907 of file debug.c.

int debugfile_filename_info ( char *  filename,
char **  realfilename,
char **  name,
char **  version 
)
struct debugfile* debugfile_from_binfile ( struct binfile binfile,
struct array_list debugfile_load_opts_list 
)

Definition at line 1805 of file debug.c.

struct debugfile* debugfile_from_file ( char *  filename,
char *  root_prefix,
struct array_list debugfile_load_opts_list 
)

Debugfiles.

Definition at line 1584 of file debug.c.

struct debugfile* debugfile_from_instance ( struct binfile_instance bfinst,
struct array_list debugfile_load_opts_list 
)

Definition at line 1726 of file debug.c.

struct array_list* debugfile_get_loaded_debugfiles ( )

Definition at line 1810 of file debug.c.

char* debugfile_get_name ( struct debugfile debugfile)

Definition at line 1286 of file debug.c.

char* debugfile_get_version ( struct debugfile debugfile)

Definition at line 1290 of file debug.c.

int debugfile_load_opts_checklist ( struct array_list opts_list,
char *  name,
struct debugfile_load_opts **  match_saveptr 
)

Definition at line 1244 of file debug.c.

void debugfile_load_opts_free ( struct debugfile_load_opts opts)

Definition at line 1275 of file debug.c.

struct debugfile_load_opts* debugfile_load_opts_parse ( char *  optstr)

Definition at line 1194 of file debug.c.

struct lsymbol* debugfile_lookup_addr ( struct debugfile debugfile,
ADDR  addr 
)

Definition at line 667 of file debug.c.

struct array_list* debugfile_lookup_addrs_line ( struct debugfile debugfile,
char *  filename,
int  line 
)

Definition at line 387 of file debug.c.

int debugfile_lookup_filename_line_addr ( struct debugfile debugfile,
ADDR  addr,
char **  filename,
int *  line 
)

Definition at line 437 of file debug.c.

int debugfile_lookup_line_addr ( struct debugfile debugfile,
char *  filename,
ADDR  addr 
)

Definition at line 411 of file debug.c.

struct lsymbol* debugfile_lookup_sym ( struct debugfile debugfile,
char *  name,
const char *  delim,
struct rfilter srcfile_filter,
symbol_type_flag_t  flags 
)

Symbol/memaddr lookup functions.

Definition at line 1021 of file debug.c.

struct lsymbol* debugfile_lookup_sym_line ( struct debugfile debugfile,
char *  filename,
int  line,
SMOFFSET offset,
ADDR addr 
)

Definition at line 491 of file debug.c.

GSList* debugfile_match_syms ( struct debugfile debugfile,
struct rfilter symbol_filter,
symbol_type_flag_t  flags,
struct rfilter srcfile_filter 
)

Definition at line 1034 of file debug.c.

char* debugfile_search_path ( char *  filename,
char *  root_prefix,
char *  debug_postfix,
const char *  DFPATH[],
char *  buf,
int  buflen 
)

Definition at line 1510 of file debug.c.

void dwdebug_evict ( struct debugfile debugfile)

Definition at line 115 of file debug.c.

void dwdebug_evict_all ( void  )

Definition at line 130 of file debug.c.

void dwdebug_fini ( void  )

Definition at line 143 of file debug.c.

void dwdebug_init ( void  )

Library users must call these to initialize global library state. They may be called as many times as necessary; but are NOT thread safe.

Definition at line 83 of file debug.c.

struct location* location_create ( void  )

Locations.

Definition at line 39 of file location.c.

void location_free ( struct location location)

Definition at line 359 of file location.c.

struct lsymbol* lsymbol_clone ( struct lsymbol lsymbol,
struct symbol newchild 
)

Definition at line 369 of file debug.c.

struct lsymbol* lsymbol_create_from_member ( struct lsymbol parent,
struct symbol member 
)

Definition at line 4646 of file debug.c.

struct lsymbol* lsymbol_create_from_symbol ( struct symbol symbol)

Definition at line 4722 of file debug.c.

struct lsymbol* lsymbol_create_noninline ( struct lsymbol lsymbol)

Definition at line 4788 of file debug.c.

void lsymbol_dump ( struct lsymbol lsymbol,
struct dump_info ud 
)

Definition at line 5622 of file debug.c.

char* lsymbol_get_name ( struct lsymbol lsymbol)

Definition at line 4732 of file debug.c.

struct symbol* lsymbol_get_noninline_parent_symbol ( struct lsymbol lsymbol)

Definition at line 4742 of file debug.c.

struct symbol* lsymbol_get_symbol ( struct lsymbol lsymbol)

Definition at line 4738 of file debug.c.

struct lsymbol* lsymbol_lookup_sym ( struct lsymbol lsymbol,
const char *  name,
const char *  delim 
)

Definition at line 299 of file debug.c.

OFFSET lsymbol_offsetof ( struct lsymbol lsymbol,
const char *  name,
const char *  delim 
)

Definition at line 364 of file debug.c.

REFCNT lsymbol_release ( struct lsymbol lsymbol)

Definition at line 4805 of file debug.c.

int lsymbol_resolve_bounds ( struct lsymbol lsymbol,
ADDR  base_addr,
struct location_ctxt lctxt,
ADDR start,
ADDR end,
int *  is_noncontiguous,
ADDR alt_start,
ADDR alt_end 
)

Definition at line 1566 of file location.c.

loctype_t lsymbol_resolve_location ( struct lsymbol lsymbol,
ADDR  base_addr,
struct location_ctxt lctxt,
struct location o_loc 
)

Definition at line 1266 of file location.c.

struct scope* scope_lookup_addr ( struct scope scope,
ADDR  pc 
)

Scope (PC) lookup functions.

Definition at line 528 of file scope.c.

int symbol_contains_addr ( struct symbol symbol,
ADDR  obj_addr 
)

Definition at line 4063 of file debug.c.

struct symbol* symbol_create ( symbol_type_t  symtype,
symbol_source_t  source,
char *  name,
int  name_copy,
SMOFFSET  offset,
load_type_t  loadtype,
struct scope scope 
)

Symbols.

Definition at line 2550 of file debug.c.

void symbol_dump ( struct symbol symbol,
struct dump_info ud 
)

Definition at line 5572 of file debug.c.

struct symbol* symbol_find_parent ( struct symbol symbol)

Definition at line 3106 of file debug.c.

struct symbol* symbol_find_root ( struct symbol symbol)

Definition at line 3119 of file debug.c.

void symbol_function_dump ( struct symbol symbol,
struct dump_info ud 
)

Definition at line 5203 of file debug.c.

ADDR symbol_get_addr ( struct symbol symbol)

Definition at line 3096 of file debug.c.

uint32_t symbol_get_bitctbytes ( struct symbol symbol)

Definition at line 3090 of file debug.c.

uint32_t symbol_get_bitoffset ( struct symbol symbol)

Definition at line 3085 of file debug.c.

uint32_t symbol_get_bitsize ( struct symbol symbol)

Definition at line 3079 of file debug.c.

uint32_t symbol_get_bytesize ( struct symbol symbol)

Definition at line 3065 of file debug.c.

char* symbol_get_compdirname ( struct symbol symbol)

Definition at line 2949 of file debug.c.

struct symbol* symbol_get_datatype ( struct symbol symbol)

Definition at line 2989 of file debug.c.

struct symbol* symbol_get_datatype_real ( struct symbol symbol)

Definition at line 2970 of file debug.c.

struct symbol* symbol_get_inline_origin ( struct symbol symbol)

Definition at line 4162 of file debug.c.

struct symbol* symbol_get_member ( struct symbol symbol,
char *  memberlist,
const char *  delim 
)

Definition at line 4136 of file debug.c.

GSList* symbol_get_members ( struct symbol symbol,
symbol_type_flag_t  flags 
)

Definition at line 3146 of file debug.c.

char* symbol_get_name ( struct symbol symbol)

Definition at line 2587 of file debug.c.

char* symbol_get_name_inline ( struct symbol symbol)

Definition at line 2600 of file debug.c.

struct symbol* symbol_get_one_member ( struct symbol symbol,
char *  member 
)

Definition at line 4127 of file debug.c.

GSList* symbol_get_ordered_members ( struct symbol symbol,
symbol_type_flag_t  flags 
)

Definition at line 3128 of file debug.c.

symbol_source_t symbol_get_source ( struct symbol symbol)

Definition at line 2966 of file debug.c.

char* symbol_get_srcfile ( struct symbol symbol)

Definition at line 2941 of file debug.c.

int symbol_get_srcline ( struct symbol symbol)

Definition at line 2937 of file debug.c.

struct symbol* symbol_get_sym ( struct symbol symbol,
const char *  name,
symbol_type_flag_t  flags 
)

Symbol lookup functions.

Definition at line 177 of file debug.c.

symbol_type_t symbol_get_type ( struct symbol symbol)

Definition at line 2962 of file debug.c.

int symbol_has_addr ( struct symbol symbol)

Definition at line 3047 of file debug.c.

int symbol_has_unspecified_parameters ( struct symbol symbol)

Definition at line 3050 of file debug.c.

void symbol_hold ( struct symbol symbol)
int symbol_is_bitsize ( struct symbol symbol)

Definition at line 3059 of file debug.c.

int symbol_is_bytesize ( struct symbol symbol)

Definition at line 3062 of file debug.c.

int symbol_is_declaration ( struct symbol symbol)

Definition at line 3026 of file debug.c.

int symbol_is_decldefined ( struct symbol symbol)

Definition at line 3029 of file debug.c.

int symbol_is_declinline ( struct symbol symbol)

Definition at line 3056 of file debug.c.

int symbol_is_definition ( struct symbol symbol)

Definition at line 3021 of file debug.c.

int symbol_is_enumerator ( struct symbol symbol)

Definition at line 3041 of file debug.c.

int symbol_is_external ( struct symbol symbol)

Definition at line 3018 of file debug.c.

int symbol_is_inlined ( struct symbol symbol)

Definition at line 3053 of file debug.c.

int symbol_is_inlineinstance ( struct symbol symbol)

Definition at line 3044 of file debug.c.

int symbol_is_member ( struct symbol symbol)

Definition at line 3038 of file debug.c.

int symbol_is_parameter ( struct symbol symbol)

Definition at line 3035 of file debug.c.

int symbol_is_prototyped ( struct symbol symbol)

Definition at line 3032 of file debug.c.

int symbol_is_synthetic ( struct symbol symbol)

Definition at line 3015 of file debug.c.

struct lsymbol* symbol_lookup_sym ( struct symbol symbol,
const char *  name,
const char *  delim 
)

Definition at line 264 of file debug.c.

OFFSET symbol_offsetof ( struct symbol symbol,
const char *  name,
const char *  delim 
)

Definition at line 314 of file debug.c.

REFCNT symbol_release ( struct symbol symbol)

Definition at line 4318 of file debug.c.

int symbol_resolve_bounds ( struct symbol symbol,
struct location_ctxt lctxt,
ADDR start,
ADDR end,
int *  is_noncontiguous,
ADDR o_alt_start,
ADDR o_alt_end 
)

Definition at line 1047 of file location.c.

loctype_t symbol_resolve_location ( struct symbol symbol,
struct location_ctxt lctxt,
struct location o_loc 
)

Definition at line 546 of file location.c.

char* SYMBOL_SOURCE ( int  n)
inline

Definition at line 5675 of file debug.c.

char* SYMBOL_TYPE ( int  n)
inline

Definition at line 5662 of file debug.c.

unsigned int symbol_type_array_bytesize ( struct symbol type)

Definition at line 4239 of file debug.c.

void symbol_type_dump ( struct symbol symbol,
struct dump_info ud 
)

Definition at line 5328 of file debug.c.

int symbol_type_equal ( struct symbol t1,
struct symbol t2,
GHashTable *  eqcache,
GHashTable *  updated_datatype_refs 
)

Definition at line 3801 of file debug.c.

int symbol_type_flags_match ( struct symbol symbol,
symbol_type_flag_t  flags 
)

Definition at line 3102 of file debug.c.

unsigned int symbol_type_full_bytesize ( struct symbol type)

Definition at line 4267 of file debug.c.

int symbol_type_is_char ( struct symbol type)

Definition at line 4224 of file debug.c.

struct symbol* symbol_type_skip_ptrs ( struct symbol type)

Definition at line 4209 of file debug.c.

struct symbol* symbol_type_skip_qualifiers ( struct symbol type)

Definition at line 4191 of file debug.c.

void symbol_var_dump ( struct symbol symbol,
struct dump_info ud 
)

Definition at line 5059 of file debug.c.

int symbol_visible_at_ip ( struct symbol symbol,
ADDR  ip 
)