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 | Functions | Variables
dwdebug_priv.h File Reference
#include "arch.h"
#include "dwdebug.h"
Include dependency graph for dwdebug_priv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  debugfile_ops
 
struct  dwarf_debugfile_info
 
struct  symdict
 
struct  range
 
struct  scope
 
struct  loclistloc
 
struct  location
 
struct  location_ops
 
struct  location_ctxt
 
struct  symbol
 
struct  symbol_root
 
struct  symbol_root_dwarf
 
struct  symbol_root_elf
 
struct  symbol_type_container
 
struct  symbol_function
 
struct  symbol_variable
 
struct  symbol_label
 
struct  symbol_block
 
struct  symbol_inline
 

Macros

#define LOGDUMPSYMBOL(dl, lt, lf, s)
 
#define LOGDUMPSYMBOL_NL(dl, lt, lf, s)
 
#define WARNDUMPSYMBOL(s)
 
#define WARNDUMPSYMBOL_NL(s)
 
#define WARNOPTDUMPSYMBOL(wl, lt, lf, s)
 
#define WARNOPTDUMPSYMBOL_NL(wl, lt, lf, s)
 
#define ERRORDUMPSYMBOL(s)
 
#define ERRORDUMPSYMBOL_NL(s)
 
#define LOGDUMPSCOPE(dl, lt, lf, s)
 
#define LOGDUMPSCOPE_NL(dl, lt, lf, s)
 
#define ERRORDUMPSCOPE(s)
 
#define ERRORDUMPSCOPE_NL(s)
 
#define WARNDUMPSCOPE(s)
 
#define WARNDUMPSCOPE_NL(s)
 
#define LOGDUMPLSYMBOL(dl, lt, lf, s)
 
#define LOGDUMPLSYMBOL_NL(dl, lt, lf, s)
 
#define ERRORDUMPLSYMBOL(s)
 
#define ERRORDUMPLSYMBOL_NL(s)
 
#define LOCTYPE_BITS   5
 
#define LOCATION_REMAINING_BITS   (__WORDSIZE - LOCTYPE_BITS - 1)
 
#define LOCATION_IS_UNKNOWN(loc)   ((loc)->loctype == LOCTYPE_UNKNOWN)
 
#define LOCATION_IS_ADDR(loc)   ((loc)->loctype == LOCTYPE_ADDR)
 
#define LOCATION_IS_REG(loc)   ((loc)->loctype == LOCTYPE_REG)
 
#define LOCATION_IS_REG_ADDR(loc)   ((loc)->loctype == LOCTYPE_REG_ADDR)
 
#define LOCATION_IS_REG_OFFSET(loc)   ((loc)->loctype == LOCTYPE_REG_OFFSET)
 
#define LOCATION_IS_M_OFFSET(loc)   ((loc)->loctype == LOCTYPE_MEMBER_OFFSET)
 
#define LOCATION_IS_FB_OFFSET(loc)   ((loc)->loctype == LOCTYPE_FBREG_OFFSET)
 
#define LOCATION_IS_LOCLIST(loc)   ((loc)->loctype == LOCTYPE_LOCLIST)
 
#define LOCATION_IS_IMPLICIT_WORD(loc)   ((loc)->loctype == LOCTYPE_IMPLICIT_WORD)
 
#define LOCATION_IS_IMPLICIT_DATA(loc)   ((loc)->loctype == LOCTYPE_IMPLICIT_DATA)
 
#define LOCATION_IS_RUNTIME(loc)   ((loc)->loctype == LOCTYPE_RUNTIME)
 
#define LOCATION_ADDR(loc)   (loc)->l.addr
 
#define LOCATION_REG(loc)   (loc)->l.reg
 
#define LOCATION_OFFSET(loc)   (loc)->l.offset
 
#define LOCATION_LOCLIST(loc)   (loc)->l.loclist
 
#define LOCATION_WORD(loc)   (loc)->l.word
 
#define LOCATION_GET_REGOFFSET(loc, reg, offset)
 
#define LOCATION_GET_DATA(loc, buf, buflen)
 
#define SIZE_BITS_SIZE   10
 
#define SIZE_OFFSET_SIZE   10
 
#define SIZE_CTBYTES_SIZE   12
 
#define SYMBOL_IS_DWARF(sym)   ((sym) && (sym)->source == SYMBOL_SOURCE_DWARF)
 
#define SYMBOL_IS_ELF(sym)   ((sym) && (sym)->source == SYMBOL_SOURCE_ELF)
 
#define SYMBOL_IS_FULL(sym)   ((sym)->loadtag == LOADTYPE_FULL)
 
#define SYMBOL_IS_PARTIAL(sym)   ((sym)->loadtag == LOADTYPE_PARTIAL)
 
#define SYMBOL_IS_ROOT(sym)   ((sym)->type == SYMBOL_TYPE_ROOT)
 
#define SYMBOL_IS_TYPE(sym)   ((sym)->type == SYMBOL_TYPE_TYPE)
 
#define SYMBOL_IS_VAR(sym)   ((sym)->type == SYMBOL_TYPE_VAR)
 
#define SYMBOL_IS_FUNC(sym)   ((sym)->type == SYMBOL_TYPE_FUNC)
 
#define SYMBOL_IS_LABEL(sym)   ((sym)->type == SYMBOL_TYPE_LABEL)
 
#define SYMBOL_IS_BLOCK(sym)   ((sym)->type == SYMBOL_TYPE_BLOCK)
 
#define SYMBOL_IS_INSTANCE(sym)
 
#define SYMBOL_IS_FULL_ROOT(sym)
 
#define SYMBOL_IS_FULL_VAR(sym)
 
#define SYMBOL_IS_FULL_FUNC(sym)
 
#define SYMBOL_IS_FULL_LABEL(sym)
 
#define SYMBOL_IS_FULL_BLOCK(sym)
 
#define SYMBOL_IST_VOID(sym)
 
#define SYMBOL_IST_ARRAY(sym)
 
#define SYMBOL_IST_STRUCT(sym)
 
#define SYMBOL_IST_ENUM(sym)
 
#define SYMBOL_IST_PTR(sym)
 
#define SYMBOL_IST_FUNC(sym)
 
#define SYMBOL_IST_TYPEDEF(sym)
 
#define SYMBOL_IST_UNION(sym)
 
#define SYMBOL_IST_BASE(sym)
 
#define SYMBOL_IST_CONST(sym)
 
#define SYMBOL_IST_VOL(sym)
 
#define SYMBOL_IST_NAMESPACE(sym)
 
#define SYMBOL_IST_CLASS(sym)
 
#define SYMBOL_IST_TEMPLATE(sym)
 
#define SYMBOL_IST_STUN(sym)
 
#define SYMBOL_IST_STUNC(sym)
 
#define SYMBOL_TYPE_FLAG_MATCHES(sym, flags)
 
#define SYMBOL_IST_CONTAINER(sym)
 
#define SYMBOL_HAS_MEMBERS(sym)
 
#define SYMBOL_CAN_OWN_SCOPE(sym)
 
#define SYMBOL_IS_OWN_DATATYPE(sym)
 
#define SYMBOL_IS_INLINEABLE(sym)
 
#define SYMBOL_IS_CONTAINER(sym)
 
#define SYMBOL_HAS_EXTRA(sym)   ((sym)->extra.exists != NULL)
 
#define SYMBOL_HAS_INLINE(sym)
 
#define SYMBOLX_ROOT(sym)   (sym)->extra.root
 
#define SYMBOL_RX_ROOT(sym, rvar)   struct symbol_root *rvar = SYMBOLX_ROOT(sym)
 
#define SYMBOL_WX_ROOT(sym, wvar, reterr)
 
#define SYMBOLX_ENCODING_V(sym)   (sym)->extra.encoding
 
#define SYMBOLX_SUBRANGES(sym)   (sym)->extra.subranges
 
#define SYMBOLX_CONTAINER(sym)   (sym)->extra.container
 
#define SYMBOL_RX_CONTAINER(sym, rvar)   struct symbol_type_container *rvar = SYMBOLX_CONTAINER(sym)
 
#define SYMBOL_WX_CONTAINER(sym, wvar, reterr)
 
#define SYMBOLX_FUNC(sym)   (sym)->extra.function
 
#define SYMBOL_RX_FUNC(sym, rvar)   struct symbol_function *rvar = SYMBOLX_FUNC(sym)
 
#define SYMBOL_WX_FUNC(sym, wvar, reterr)
 
#define SYMBOLX_VAR(sym)   (sym)->extra.variable
 
#define SYMBOL_RX_VAR(sym, rvar)   struct symbol_variable *rvar = SYMBOLX_VAR(sym)
 
#define SYMBOL_WX_VAR(sym, wvar, reterr)
 
#define SYMBOLX_LABEL(sym)   (sym)->extra.label
 
#define SYMBOL_RX_LABEL(sym, rvar)   struct symbol_label *rvar = SYMBOLX_LABEL(sym)
 
#define SYMBOL_WX_LABEL(sym, wvar, reterr)
 
#define SYMBOLX_BLOCK(sym)   (sym)->extra.block
 
#define SYMBOL_RX_BLOCK(sym, rvar)   struct symbol_block *rvar = SYMBOLX_BLOCK(sym)
 
#define SYMBOL_WX_BLOCK(sym, wvar, reterr)
 
#define SYMBOLX_INLINE(sym)
 
#define SYMBOL_RX_INLINE(sym, rvar)   struct symbol_inline *rvar = SYMBOLX_INLINE(sym)
 
#define SYMBOL_WX_INLINE(sym, wvar, reterr)
 
#define SYMBOLX_MEMBERS(sym)
 
#define SYMBOLX_SCOPE(sym)
 
#define SYMBOLX_VAR_LOC(sym)
 
#define SYMBOLX_VAR_CONSTVAL(sym)
 
#define SYMBOL_EXPAND_WARN(symbol)
 
#define SYMBOL_EXPAND_ERROR_RET(symbol, retval)
 
#define SYMBOL_EXPAND_ERROR_OUT(symbol, label)
 
#define symbol_set_external(s)   (s)->isexternal = 1
 
#define symbol_set_parameter(s)   (s)->isparam = 1
 
#define symbol_set_enumval(s)   (s)->isenumval = 1
 
#define symbol_set_member(s)   (s)->ismember = 1
 
#define symbol_set_unspec_params(s)   (s)->has_unspec_params = 1
 

Typedefs

typedef void(* symdict_symbol_dtor_t )(struct symbol *symbol, void *priv)
 
typedef char * dwarf_cfa_info_t
 

Functions

struct debugfiledebugfile_create (debugfile_type_t dtype, debugfile_type_flags_t dtflags, struct binfile *binfile, struct debugfile_load_opts *opts, struct binfile *binfile_pointing)
 
struct debugfiledebugfile_create_basic (debugfile_type_t dtype, debugfile_type_flags_t dtflags, char *filename, struct debugfile_load_opts *opts)
 
int debugfile_load_debuginfo (struct debugfile *debugfile)
 
int debugfile_load_elfsymtab (struct debugfile *debugfile, Elf *elf, char *elf_filename)
 
loctype_t dwarf_location_resolve (const unsigned char *data, unsigned int len, struct location_ctxt *lctxt, struct symbol *symbol, struct location *o_loc)
 
struct locationdwarf_get_static_ops (struct symbol_root_dwarf *srd, const unsigned char *data, Dwarf_Word len, unsigned int attr)
 
struct symboldebugfile_lookup_root (struct debugfile *debugfile, SMOFFSET offset)
 
struct symboldebugfile_lookup_root_name (struct debugfile *debugfile, char *name)
 
int debugfile_insert_root (struct debugfile *debugfile, struct symbol *symbol)
 
int debugfile_remove_root (struct debugfile *debugfile, struct symbol *symbol)
 
int debugfile_update_root (struct debugfile *debugfile, struct symbol *symbol)
 
int debugfile_add_global (struct debugfile *debugfile, struct symbol *symbol)
 
struct symboldebugfile_find_type (struct debugfile *debugfile, char *typename)
 
int debugfile_add_type (struct debugfile *debugfile, struct symbol *symbol)
 
int debugfile_replace_type (struct debugfile *debugfile, struct symbol *symbol)
 
void debugfile_save_declaration (struct debugfile *debugfile, struct symbol *symbol)
 
void debugfile_handle_declaration (struct debugfile *debugfile, struct symbol *symbol)
 
void debugfile_resolve_declarations (struct debugfile *debugfile)
 
void debugfile_resolve_one_declaration (struct debugfile *debugfile, char *name)
 
int debugfile_declaration_copy_definition (struct debugfile *debugfile, struct symbol *declaration, struct symbol *definition)
 
int debugfile_define_by_specification (struct debugfile *debugfile, struct symbol *specification, struct symbol *definition)
 
struct lsymboldebugfile_lookup_addr__int (struct debugfile *debugfile, ADDR addr)
 
int debugfile_lookup_addr_alt__int (struct debugfile *debugfile, ADDR addr, struct lsymbol **primary, struct lsymbol **alt)
 
struct lsymboldebugfile_lookup_sym__int (struct debugfile *debugfile, char *name, const char *delim, struct rfilter *srcfile_filter, symbol_type_flag_t flags)
 
struct lsymboldebugfile_lookup_sym_line__int (struct debugfile *debugfile, char *filename, int line, SMOFFSET *offset, ADDR *addr)
 
REFCNT debugfile_free (struct debugfile *debugfile, int force)
 
struct lsymbollsymbol_create (struct symbol *symbol, struct array_list *chain)
 
void lsymbol_append (struct lsymbol *lsymbol, struct symbol *symbol)
 
void lsymbol_prepend (struct lsymbol *lsymbol, struct symbol *symbol)
 
void lsymbol_hold_int (struct lsymbol *lsymbol)
 
struct lsymbollsymbol_lookup_sym__int (struct lsymbol *lsymbol, const char *name, const char *delim)
 
struct lsymbollsymbol_create_from_member__int (struct lsymbol *parent, struct symbol *member)
 
struct lsymbollsymbol_create_from_symbol__int (struct symbol *symbol)
 
struct lsymbollsymbol_create_noninline__int (struct lsymbol *lsymbol)
 
REFCNT lsymbol_free (struct lsymbol *lsymbol, int force)
 
struct symdictsymdict_create (void)
 
int symdict_get_size_simple (struct symdict *symdict)
 
int symdict_get_size (struct symdict *symdict)
 
int symdict_get_size_named (struct symdict *symdict)
 
int symdict_get_sizes (struct symdict *symdict, int *named, int *duplicated, int *anon)
 
int symdict_insert_symbol (struct symdict *symdict, struct symbol *symbol)
 
int symdict_insert_symbol_anon (struct symdict *symdict, struct symbol *symbol)
 
struct symbolsymdict_get_sym (struct symdict *symdict, const char *name, symbol_type_flag_t flags)
 
GSList * symdict_match_syms (struct symdict *symdict, struct rfilter *symbol_filter, symbol_type_flag_t flags)
 
GSList * symdict_match_syms_by_tab (struct symdict *symdict, struct rfilter *symbol_filter, symbol_type_flag_t flags, int no_main, int no_dup, int no_anon)
 
int symdict_remove_symbol (struct symdict *symdict, struct symbol *symbol)
 
void symdict_dump (struct symdict *symdict, struct dump_info *ud)
 
void symdict_free (struct symdict *symdict, symdict_symbol_dtor_t ssd, void *priv)
 
struct scopescope_create (struct symbol *owner, SMOFFSET ref)
 
char * scope_get_name (struct scope *scope)
 
int scope_insert_symbol (struct scope *scope, struct symbol *symbol)
 
int scope_hold_symbol (struct scope *scope, struct symbol *symbol)
 
int scope_remove_symbol (struct scope *scope, struct symbol *symbol)
 
int scope_insert_scope (struct scope *parent, struct scope *child)
 
int scope_remove_scope (struct scope *parent, struct scope *child)
 
void scope_update_range (struct scope *scope, ADDR start, ADDR end, int *action)
 
struct symbolscope_get_sym (struct scope *scope, const char *name, symbol_type_flag_t flags)
 
int scope_contains_addr (struct scope *scope, ADDR addr)
 
struct lsymbolscope_lookup_sym (struct scope *scope, const char *name, const char *delim, symbol_type_flag_t flags)
 
void scope_dump (struct scope *scope, struct dump_info *ud)
 
int scope_get_sizes (struct scope *scope, int *named, int *duplicated, int *anon, int *numscopes)
 
int scope_get_overall_range (struct scope *scope, ADDR *low_addr_saveptr, ADDR *high_addr_saveptr, int *is_noncontiguous)
 
REFCNT scope_free (struct scope *scope, int force)
 
GSList * scope_match_syms (struct scope *scope, struct rfilter *symbol_filter, symbol_type_flag_t flags)
 
int location_set_addr (struct location *l, ADDR addr)
 
int location_set_reg (struct location *l, REG reg)
 
int location_set_reg_addr (struct location *l, REG reg)
 
int location_set_reg_offset (struct location *l, REG reg, OFFSET offset)
 
int location_set_member_offset (struct location *l, OFFSET offset)
 
int location_set_fbreg_offset (struct location *l, OFFSET offset)
 
int location_set_loclist (struct location *l, struct loclistloc *list)
 
int location_update_loclist (struct location *loc, ADDR start, ADDR end, struct location *rloc, int *action)
 
int location_set_implicit_word (struct location *loc, ADDR word)
 
int location_set_implicit_data (struct location *loc, char *data, int len, int nocopy)
 
int location_set_runtime (struct location *l, char *data, int len, int nocopy)
 
loctype_t location_resolve (struct location *loc, struct location_ctxt *lctxt, struct symbol *symbol, struct location *o_loc)
 
struct locationlocation_copy (struct location *location)
 
void location_dump (struct location *location, struct dump_info *ud)
 
void location_internal_free (struct location *location)
 
struct location_ctxtlocation_ctxt_create (struct location_ops *ops, void *priv)
 
int location_ctxt_read_retaddr (struct location_ctxt *lctxt, ADDR *o_retaddr)
 
int location_ctxt_read_reg (struct location_ctxt *lctxt, REG reg, REGVAL *o_regval)
 
int location_ctxt_write_reg (REG reg, struct location_ctxt *lctxt, REGVAL regval)
 
int location_ctxt_get_lops (struct location_ctxt *lctxt, struct location_ops **ops, void **priv)
 
void location_ctxt_free (struct location_ctxt *lctxt)
 
struct lsymbolscope_lookup_sym__int (struct scope *scope, const char *name, const char *delim, symbol_type_flag_t flags)
 
struct lsymbolsymbol_lookup_sym__int (struct symbol *symbol, const char *name, const char *delim)
 
int symbol_expand (struct symbol *symbol)
 
int symbol_insert_symbol (struct symbol *parent, struct symbol *child)
 
int symbol_remove_symbol (struct symbol *parent, struct symbol *child)
 
int symbol_change_parent (struct symbol *parent, struct symbol *child, struct symbol *newparent)
 
char * symbol_get_name_orig (struct symbol *symbol)
 
void symbol_set_name (struct symbol *symbol, char *name, int name_copy)
 
void symbol_build_extname (struct symbol *symbol)
 
int symbol_has_ext_name (struct symbol *symbol)
 
struct scopesymbol_containing_scope (struct symbol *symbol)
 
struct scopesymbol_read_owned_scope (struct symbol *symbol)
 
struct scopesymbol_write_owned_scope (struct symbol *symbol)
 
struct scopesymbol_link_owned_scope (struct symbol *symbol, struct scope *new_parent)
 
void symbol_set_srcline (struct symbol *s, int sl)
 
void symbol_set_bytesize (struct symbol *s, uint32_t b)
 
void symbol_set_bitsize (struct symbol *s, uint32_t b)
 
void symbol_set_bitoffset (struct symbol *s, uint32_t bo)
 
void symbol_set_bitsize_all (struct symbol *s, uint32_t b, uint32_t bo, uint32_t ctb)
 
void symbol_set_addr (struct symbol *s, ADDR a)
 
int symbol_set_root_priv (struct symbol *symbol, void *priv)
 
int symbol_set_root_compdir (struct symbol *symbol, char *compdirname, int copy)
 
int symbol_set_root_producer (struct symbol *symbol, char *producer, int copy)
 
int symbol_set_root_language (struct symbol *symbol, char *language, int copy, short int lang_code)
 
int symbol_set_encoding (struct symbol *symbol, encoding_t num)
 
int symbol_add_subrange (struct symbol *symbol, int subrange)
 
int symbol_set_entry_pc (struct symbol *symbol, ADDR entry_pc)
 
int symbol_set_location (struct symbol *symbol, struct location *loc)
 
int symbol_set_inline_info (struct symbol *symbol, int isinlined, int isdeclinline)
 
int symbol_set_inline_origin (struct symbol *symbol, SMOFFSET ref, struct symbol *origin)
 
int symbol_add_inline_instance (struct symbol *symbol, struct symbol *instance)
 
int symbol_set_constval (struct symbol *symbol, void *value, int len, int copy)
 
struct symbol__symbol_get_one_member__int (struct symbol *symbol, char *member, struct array_list **chainptr)
 
struct symbolsymbol_get_one_member__int (struct symbol *symbol, char *member)
 
void symbol_free_extra (struct symbol *symbol)
 
REFCNT symbol_free (struct symbol *symbol, int force)
 
void g_hash_foreach_dump_symbol_list (gpointer key __attribute__((unused)), gpointer value, gpointer userdata)
 
void g_hash_foreach_dump_symbol (gpointer key __attribute__((unused)), gpointer value, gpointer userdata)
 

Variables

struct debugfile_ops dwarf_debugfile_ops
 
symdict_symbol_dtor_t default_symdict_symbol_dtor
 

Macro Definition Documentation

#define ERRORDUMPLSYMBOL (   s)
Value:
verrorc("lsymbol(%s,%s,0x%"PRIxSMOFFSET";chainlen=%d)", \
(s)->symbol->ref,array_list_len((s)->chain));
#define verrorc(format,...)
Definition: log.h:32
symbol_type_t type
Definition: dwdebug_priv.h:833
#define PRIxSMOFFSET
Definition: common.h:102
char * SYMBOL_TYPE(int n)
Definition: debug.c:5662
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587

Definition at line 107 of file dwdebug_priv.h.

#define ERRORDUMPLSYMBOL_NL (   s)
Value:
verrorc("\n");
#define verrorc(format,...)
Definition: log.h:32
#define ERRORDUMPLSYMBOL(s)
Definition: dwdebug_priv.h:107

Definition at line 112 of file dwdebug_priv.h.

#define ERRORDUMPSCOPE (   s)
Value:
verrorc("scope(%s:0x%"PRIxSMOFFSET",[0x%"PRIxADDR",0x%"PRIxADDR"%s]," \
" refcnt=%"PRIiREFCNT")", \
((s)->symbol) ? symbol_get_name((s)->symbol) : "NULL", \
(s)->ref,((s)->range) ? (s)->range->start : 0, \
((s)->range) ? (s)->range->end : 0, \
((s)->range && (s)->range->next) ? ",..." : "",(s)->refcnt);
ADDR start
Definition: dwdebug_priv.h:437
#define verrorc(format,...)
Definition: log.h:32
#define PRIxSMOFFSET
Definition: common.h:102
#define PRIxADDR
Definition: common.h:67
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define PRIiREFCNT
Definition: common.h:125

Definition at line 72 of file dwdebug_priv.h.

#define ERRORDUMPSCOPE_NL (   s)
Value:
verrorc("\n");
#define verrorc(format,...)
Definition: log.h:32
#define ERRORDUMPSCOPE(s)
Definition: dwdebug_priv.h:72

Definition at line 80 of file dwdebug_priv.h.

#define ERRORDUMPSYMBOL (   s)
Value:
verrorc("symbol(%s,%s,0x%"PRIxSMOFFSET",refcnt=%"PRIiREFCNT")", \
symbol_get_name((s)),SYMBOL_TYPE((s)->type),(s)->ref,(s)->refcnt);
#define verrorc(format,...)
Definition: log.h:32
#define PRIxSMOFFSET
Definition: common.h:102
REFCNT refcnt
Definition: target_api.h:2461
char * SYMBOL_TYPE(int n)
Definition: debug.c:5662
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define PRIiREFCNT
Definition: common.h:125

Definition at line 50 of file dwdebug_priv.h.

#define ERRORDUMPSYMBOL_NL (   s)
Value:
verrorc("\n");
#define verrorc(format,...)
Definition: log.h:32
#define ERRORDUMPSYMBOL(s)
Definition: dwdebug_priv.h:50

Definition at line 54 of file dwdebug_priv.h.

#define LOCATION_ADDR (   loc)    (loc)->l.addr

Definition at line 622 of file dwdebug_priv.h.

#define LOCATION_GET_DATA (   loc,
  buf,
  buflen 
)
Value:
do { \
buflen = (int)(loc)->extra; \
buf = (loc)->l.data; \
} while (0);

Definition at line 633 of file dwdebug_priv.h.

#define LOCATION_GET_REGOFFSET (   loc,
  reg,
  offset 
)
Value:
do { \
reg = (REG)(loc)->extra; \
offset = (loc)->l.offset; \
} while (0);
int8_t REG
Definition: common.h:93

Definition at line 628 of file dwdebug_priv.h.

#define LOCATION_IS_ADDR (   loc)    ((loc)->loctype == LOCTYPE_ADDR)

Definition at line 611 of file dwdebug_priv.h.

#define LOCATION_IS_FB_OFFSET (   loc)    ((loc)->loctype == LOCTYPE_FBREG_OFFSET)

Definition at line 616 of file dwdebug_priv.h.

#define LOCATION_IS_IMPLICIT_DATA (   loc)    ((loc)->loctype == LOCTYPE_IMPLICIT_DATA)

Definition at line 619 of file dwdebug_priv.h.

#define LOCATION_IS_IMPLICIT_WORD (   loc)    ((loc)->loctype == LOCTYPE_IMPLICIT_WORD)

Definition at line 618 of file dwdebug_priv.h.

#define LOCATION_IS_LOCLIST (   loc)    ((loc)->loctype == LOCTYPE_LOCLIST)

Definition at line 617 of file dwdebug_priv.h.

#define LOCATION_IS_M_OFFSET (   loc)    ((loc)->loctype == LOCTYPE_MEMBER_OFFSET)

Definition at line 615 of file dwdebug_priv.h.

#define LOCATION_IS_REG (   loc)    ((loc)->loctype == LOCTYPE_REG)

Definition at line 612 of file dwdebug_priv.h.

#define LOCATION_IS_REG_ADDR (   loc)    ((loc)->loctype == LOCTYPE_REG_ADDR)

Definition at line 613 of file dwdebug_priv.h.

#define LOCATION_IS_REG_OFFSET (   loc)    ((loc)->loctype == LOCTYPE_REG_OFFSET)

Definition at line 614 of file dwdebug_priv.h.

#define LOCATION_IS_RUNTIME (   loc)    ((loc)->loctype == LOCTYPE_RUNTIME)

Definition at line 620 of file dwdebug_priv.h.

#define LOCATION_IS_UNKNOWN (   loc)    ((loc)->loctype == LOCTYPE_UNKNOWN)

Definition at line 610 of file dwdebug_priv.h.

#define LOCATION_LOCLIST (   loc)    (loc)->l.loclist

Definition at line 625 of file dwdebug_priv.h.

#define LOCATION_OFFSET (   loc)    (loc)->l.offset

Definition at line 624 of file dwdebug_priv.h.

#define LOCATION_REG (   loc)    (loc)->l.reg

Definition at line 623 of file dwdebug_priv.h.

#define LOCATION_REMAINING_BITS   (__WORDSIZE - LOCTYPE_BITS - 1)

Definition at line 570 of file dwdebug_priv.h.

#define LOCATION_WORD (   loc)    (loc)->l.word

Definition at line 626 of file dwdebug_priv.h.

#define LOCTYPE_BITS   5

Locations.

Definition at line 536 of file dwdebug_priv.h.

#define LOGDUMPLSYMBOL (   dl,
  lt,
  lf,
 
)
Value:
vdebugc((dl),(lt),(lf), \
"lsymbol(%s,%s,0x%"PRIxSMOFFSET";chainlen=%d)", \
(s)->symbol->ref,array_list_len((s)->chain));
symbol_type_t type
Definition: dwdebug_priv.h:833
#define PRIxSMOFFSET
Definition: common.h:102
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303
char * SYMBOL_TYPE(int n)
Definition: debug.c:5662
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587

Definition at line 97 of file dwdebug_priv.h.

#define LOGDUMPLSYMBOL_NL (   dl,
  lt,
  lf,
 
)
Value:
LOGDUMPLSYMBOL((dl),(lt),(lf),(s)); \
vdebugc((dl),(lt),(lf),"\n");
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303
#define LOGDUMPLSYMBOL(dl, lt, lf, s)
Definition: dwdebug_priv.h:97

Definition at line 103 of file dwdebug_priv.h.

#define LOGDUMPSCOPE (   dl,
  lt,
  lf,
 
)
Value:
vdebugc((dl),(lt),(lf), \
"scope(%s:0x%"PRIxSMOFFSET",[0x%"PRIxADDR",0x%"PRIxADDR"%s]," \
" refcnt=%"PRIiREFCNT")", \
((s)->symbol) ? symbol_get_name((s)->symbol) : "NULL", \
(s)->ref,((s)->range) ? (s)->range->start : 0, \
((s)->range) ? (s)->range->end : 0, \
((s)->range && (s)->range->next) ? ",..." : "",(s)->refcnt);
ADDR start
Definition: dwdebug_priv.h:437
#define PRIxSMOFFSET
Definition: common.h:102
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303
#define PRIxADDR
Definition: common.h:67
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define PRIiREFCNT
Definition: common.h:125

Definition at line 59 of file dwdebug_priv.h.

#define LOGDUMPSCOPE_NL (   dl,
  lt,
  lf,
 
)
Value:
LOGDUMPSCOPE((dl),(lt),(lf),(s)); \
vdebugc((dl),(lt),(lf),"\n");
#define LOGDUMPSCOPE(dl, lt, lf, s)
Definition: dwdebug_priv.h:59
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303

Definition at line 68 of file dwdebug_priv.h.

#define LOGDUMPSYMBOL (   dl,
  lt,
  lf,
 
)
Value:
vdebugc((dl),(lt),(lf), \
"symbol(%s,%s,0x%"PRIxSMOFFSET",refcnt=%"PRIiREFCNT")", \
symbol_get_name((s)),SYMBOL_TYPE((s)->type),(s)->ref,(s)->refcnt);
#define PRIxSMOFFSET
Definition: common.h:102
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303
REFCNT refcnt
Definition: target_api.h:2461
char * SYMBOL_TYPE(int n)
Definition: debug.c:5662
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define PRIiREFCNT
Definition: common.h:125

Definition at line 25 of file dwdebug_priv.h.

#define LOGDUMPSYMBOL_NL (   dl,
  lt,
  lf,
 
)
Value:
LOGDUMPSYMBOL((dl),(lt),(lf),(s)); \
vdebugc((dl),(lt),(lf),"\n");
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303
#define LOGDUMPSYMBOL(dl, lt, lf, s)
Definition: dwdebug_priv.h:25

Definition at line 30 of file dwdebug_priv.h.

#define SIZE_BITS_SIZE   10

Definition at line 903 of file dwdebug_priv.h.

#define SIZE_CTBYTES_SIZE   12

Definition at line 905 of file dwdebug_priv.h.

#define SIZE_OFFSET_SIZE   10

Definition at line 904 of file dwdebug_priv.h.

#define SYMBOL_CAN_OWN_SCOPE (   sym)
Value:
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOL_IS_ROOT(sym)
#define SYMBOL_IST_CONTAINER(sym)
#define SYMBOL_IS_FUNC(sym)

Definition at line 1211 of file dwdebug_priv.h.

#define SYMBOL_EXPAND_ERROR_OUT (   symbol,
  label 
)
Value:
do { \
verror("could not expand datatype symbol %s; continuing!\n", \
goto label; \
} \
} \
} while(0);
#define SYMBOL_IS_FULL(sym)
#define verror(format,...)
Definition: log.h:30
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
int symbol_expand(struct symbol *symbol)
Definition: debug.c:3161

Definition at line 1367 of file dwdebug_priv.h.

#define SYMBOL_EXPAND_ERROR_RET (   symbol,
  retval 
)
Value:
do { \
verror("could not expand datatype symbol %s; continuing!\n", \
return retval; \
} \
} \
} while(0);
#define SYMBOL_IS_FULL(sym)
#define verror(format,...)
Definition: log.h:30
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
int symbol_expand(struct symbol *symbol)
Definition: debug.c:3161

Definition at line 1357 of file dwdebug_priv.h.

#define SYMBOL_EXPAND_WARN (   symbol)
Value:
do { \
vwarn("could not expand datatype symbol %s; continuing!\n", \
} \
} while(0);
#define SYMBOL_IS_FULL(sym)
#define vwarn(format,...)
Definition: log.h:33
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
int symbol_expand(struct symbol *symbol)
Definition: debug.c:3161

Definition at line 1349 of file dwdebug_priv.h.

#define SYMBOL_HAS_EXTRA (   sym)    ((sym)->extra.exists != NULL)

Definition at line 1226 of file dwdebug_priv.h.

#define SYMBOL_HAS_INLINE (   sym)
Value:
&& ((SYMBOL_IS_VAR(sym) && SYMBOLX_VAR(sym)->ii) \
|| (SYMBOL_IS_FUNC(sym) && SYMBOLX_FUNC(sym)->ii) \
|| (SYMBOL_IS_LABEL(sym) && SYMBOLX_LABEL(sym)->ii) \
|| (SYMBOL_IS_BLOCK(sym) && SYMBOLX_BLOCK(sym)->ii)))
#define SYMBOL_IS_LABEL(sym)
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOLX_VAR(sym)
#define SYMBOL_HAS_EXTRA(sym)
#define SYMBOLX_FUNC(sym)
#define SYMBOLX_LABEL(sym)
#define SYMBOL_IS_FUNC(sym)
#define SYMBOL_IS_VAR(sym)
#define SYMBOLX_BLOCK(sym)

Definition at line 1227 of file dwdebug_priv.h.

#define SYMBOL_HAS_MEMBERS (   sym)
Value:
#define SYMBOL_IST_ENUM(sym)
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOL_IS_ROOT(sym)
#define SYMBOL_IST_CONTAINER(sym)
#define SYMBOL_IS_FUNC(sym)

Definition at line 1208 of file dwdebug_priv.h.

#define SYMBOL_IS_BLOCK (   sym)    ((sym)->type == SYMBOL_TYPE_BLOCK)

Definition at line 1128 of file dwdebug_priv.h.

#define SYMBOL_IS_CONTAINER (   sym)
Value:
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOL_IS_ROOT(sym)
#define SYMBOL_IST_CONTAINER(sym)
#define SYMBOL_IS_FUNC(sym)

Definition at line 1223 of file dwdebug_priv.h.

#define SYMBOL_IS_DWARF (   sym)    ((sym) && (sym)->source == SYMBOL_SOURCE_DWARF)

Definition at line 1117 of file dwdebug_priv.h.

#define SYMBOL_IS_ELF (   sym)    ((sym) && (sym)->source == SYMBOL_SOURCE_ELF)

Definition at line 1118 of file dwdebug_priv.h.

#define SYMBOL_IS_FULL (   sym)    ((sym)->loadtag == LOADTYPE_FULL)

Definition at line 1120 of file dwdebug_priv.h.

#define SYMBOL_IS_FULL_BLOCK (   sym)
Value:
((sym)->type == SYMBOL_TYPE_BLOCK \
&& (sym)->extra.exists)

Definition at line 1141 of file dwdebug_priv.h.

#define SYMBOL_IS_FULL_FUNC (   sym)
Value:
((sym)->type == SYMBOL_TYPE_FUNC \
&& (sym)->extra.exists)

Definition at line 1137 of file dwdebug_priv.h.

#define SYMBOL_IS_FULL_LABEL (   sym)
Value:
((sym)->type == SYMBOL_TYPE_LABEL \
&& (sym)->extra.exists)

Definition at line 1139 of file dwdebug_priv.h.

#define SYMBOL_IS_FULL_ROOT (   sym)
Value:
((sym)->type == SYMBOL_TYPE_ROOT \
&& (sym)->extra.exists)

Definition at line 1133 of file dwdebug_priv.h.

#define SYMBOL_IS_FULL_VAR (   sym)
Value:
((sym)->type == SYMBOL_TYPE_VAR \
&& (sym)->extra.exists)

Definition at line 1135 of file dwdebug_priv.h.

#define SYMBOL_IS_FUNC (   sym)    ((sym)->type == SYMBOL_TYPE_FUNC)

Definition at line 1126 of file dwdebug_priv.h.

#define SYMBOL_IS_INLINEABLE (   sym)
Value:
#define SYMBOL_IS_LABEL(sym)
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOL_IS_FUNC(sym)
#define SYMBOL_IS_VAR(sym)

Definition at line 1219 of file dwdebug_priv.h.

#define SYMBOL_IS_INSTANCE (   sym)
Value:
((sym)->type != SYMBOL_TYPE_TYPE \
&& (sym)->type != SYMBOL_TYPE_ROOT \
&& (sym)->type != SYMBOL_TYPE_NONE)

Definition at line 1129 of file dwdebug_priv.h.

#define SYMBOL_IS_LABEL (   sym)    ((sym)->type == SYMBOL_TYPE_LABEL)

Definition at line 1127 of file dwdebug_priv.h.

#define SYMBOL_IS_OWN_DATATYPE (   sym)
Value:
#define SYMBOL_IST_NAMESPACE(sym)
#define SYMBOL_IST_BASE(sym)
#define SYMBOL_IST_TEMPLATE(sym)
#define SYMBOL_IST_STUN(sym)
#define SYMBOL_IST_VOID(sym)
#define SYMBOL_IST_CLASS(sym)

Definition at line 1214 of file dwdebug_priv.h.

#define SYMBOL_IS_PARTIAL (   sym)    ((sym)->loadtag == LOADTYPE_PARTIAL)

Definition at line 1121 of file dwdebug_priv.h.

#define SYMBOL_IS_ROOT (   sym)    ((sym)->type == SYMBOL_TYPE_ROOT)

Definition at line 1123 of file dwdebug_priv.h.

#define SYMBOL_IS_TYPE (   sym)    ((sym)->type == SYMBOL_TYPE_TYPE)

Definition at line 1124 of file dwdebug_priv.h.

#define SYMBOL_IS_VAR (   sym)    ((sym)->type == SYMBOL_TYPE_VAR)

Definition at line 1125 of file dwdebug_priv.h.

#define SYMBOL_IST_ARRAY (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_ARRAY)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1146 of file dwdebug_priv.h.

#define SYMBOL_IST_BASE (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_BASE)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1162 of file dwdebug_priv.h.

#define SYMBOL_IST_CLASS (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_CLASS)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1170 of file dwdebug_priv.h.

#define SYMBOL_IST_CONST (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_CONST)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1164 of file dwdebug_priv.h.

#define SYMBOL_IST_CONTAINER (   sym)
Value:
&& ((sym)->datatype_code == DATATYPE_FUNC \
|| (sym)->datatype_code == DATATYPE_STRUCT \
|| (sym)->datatype_code == DATATYPE_UNION \
|| (sym)->datatype_code == DATATYPE_NAMESPACE \
|| (sym)->datatype_code == DATATYPE_CLASS \
|| (sym)->datatype_code == DATATYPE_TEMPLATE))
#define SYMBOL_IS_TYPE(sym)

Definition at line 1201 of file dwdebug_priv.h.

#define SYMBOL_IST_ENUM (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_ENUM)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1150 of file dwdebug_priv.h.

#define SYMBOL_IST_FUNC (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_FUNC)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1155 of file dwdebug_priv.h.

#define SYMBOL_IST_NAMESPACE (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_NAMESPACE)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1168 of file dwdebug_priv.h.

#define SYMBOL_IST_PTR (   sym)
Value:
&& ((sym)->datatype_code == DATATYPE_PTR \
|| (sym)->datatype_code == DATATYPE_REF))
#define SYMBOL_IS_TYPE(sym)

Definition at line 1152 of file dwdebug_priv.h.

#define SYMBOL_IST_STRUCT (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_STRUCT)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1148 of file dwdebug_priv.h.

#define SYMBOL_IST_STUN (   sym)
Value:
&& ((sym)->datatype_code == DATATYPE_STRUCT \
|| (sym)->datatype_code == DATATYPE_UNION))
#define SYMBOL_IS_TYPE(sym)

Definition at line 1175 of file dwdebug_priv.h.

#define SYMBOL_IST_STUNC (   sym)
Value:
&& ((sym)->datatype_code == DATATYPE_STRUCT \
|| (sym)->datatype_code == DATATYPE_UNION \
|| (sym)->datatype_code == DATATYPE_CLASS))
#define SYMBOL_IS_TYPE(sym)

Definition at line 1178 of file dwdebug_priv.h.

#define SYMBOL_IST_TEMPLATE (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_TEMPLATE)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1172 of file dwdebug_priv.h.

#define SYMBOL_IST_TYPEDEF (   sym)
Value:
&& (sym)->datatype_code \
#define SYMBOL_IS_TYPE(sym)

Definition at line 1157 of file dwdebug_priv.h.

#define SYMBOL_IST_UNION (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_UNION)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1160 of file dwdebug_priv.h.

#define SYMBOL_IST_VOID (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_VOID)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1144 of file dwdebug_priv.h.

#define SYMBOL_IST_VOL (   sym)
Value:
&& (sym)->datatype_code == DATATYPE_VOL)
#define SYMBOL_IS_TYPE(sym)

Definition at line 1166 of file dwdebug_priv.h.

#define SYMBOL_RX_BLOCK (   sym,
  rvar 
)    struct symbol_block *rvar = SYMBOLX_BLOCK(sym)

Definition at line 1289 of file dwdebug_priv.h.

#define SYMBOL_RX_CONTAINER (   sym,
  rvar 
)    struct symbol_type_container *rvar = SYMBOLX_CONTAINER(sym)

Definition at line 1247 of file dwdebug_priv.h.

#define SYMBOL_RX_FUNC (   sym,
  rvar 
)    struct symbol_function *rvar = SYMBOLX_FUNC(sym)

Definition at line 1258 of file dwdebug_priv.h.

#define SYMBOL_RX_INLINE (   sym,
  rvar 
)    struct symbol_inline *rvar = SYMBOLX_INLINE(sym)

Definition at line 1304 of file dwdebug_priv.h.

#define SYMBOL_RX_LABEL (   sym,
  rvar 
)    struct symbol_label *rvar = SYMBOLX_LABEL(sym)

Definition at line 1279 of file dwdebug_priv.h.

#define SYMBOL_RX_ROOT (   sym,
  rvar 
)    struct symbol_root *rvar = SYMBOLX_ROOT(sym)

Definition at line 1235 of file dwdebug_priv.h.

#define SYMBOL_RX_VAR (   sym,
  rvar 
)    struct symbol_variable *rvar = SYMBOLX_VAR(sym)

Definition at line 1269 of file dwdebug_priv.h.

#define symbol_set_enumval (   s)    (s)->isenumval = 1

Definition at line 1448 of file dwdebug_priv.h.

#define symbol_set_external (   s)    (s)->isexternal = 1

Definition at line 1446 of file dwdebug_priv.h.

#define symbol_set_member (   s)    (s)->ismember = 1

Definition at line 1449 of file dwdebug_priv.h.

#define symbol_set_parameter (   s)    (s)->isparam = 1

Definition at line 1447 of file dwdebug_priv.h.

#define symbol_set_unspec_params (   s)    (s)->has_unspec_params = 1

Definition at line 1450 of file dwdebug_priv.h.

#define SYMBOL_TYPE_FLAG_MATCHES (   sym,
  flags 
)
Value:
|| ((flags & SYMBOL_TYPE_FLAG_TYPE && SYMBOL_IS_TYPE(sym)) \
|| (flags & SYMBOL_TYPE_FLAG_VAR && SYMBOL_IS_VAR(sym)) \
&& (sym)->isparam) \
&& (sym)->ismember) \
&& (sym)->isexternal) \
&& !((sym)->isparam || (sym)->isexternal || (sym)->ismember \
|| (sym)->isenumval)) \
|| (flags & SYMBOL_TYPE_FLAG_FUNC && SYMBOL_IS_FUNC(sym)) \
|| (flags & SYMBOL_TYPE_FLAG_LABEL && SYMBOL_IS_LABEL(sym)) \
|| (flags & SYMBOL_TYPE_FLAG_ROOT && SYMBOL_IS_ROOT(sym)) \
|| (flags & SYMBOL_TYPE_FLAG_BLOCK && SYMBOL_IS_BLOCK(sym))))
#define SYMBOL_IS_LABEL(sym)
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOL_IS_TYPE(sym)
#define SYMBOL_IS_ROOT(sym)
#define SYMBOL_IS_FUNC(sym)
#define SYMBOL_IS_VAR(sym)

Definition at line 1183 of file dwdebug_priv.h.

#define SYMBOL_WX_BLOCK (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_block *wvar; \
if (!SYMBOL_IS_BLOCK(sym)) return reterr; \
if ((sym)->extra.block) \
wvar = (sym)->extra.block; \
else \
wvar = (sym)->extra.block = (struct symbol_block *) \
calloc(1,sizeof(*(sym)->extra.block));
#define SYMBOL_IS_BLOCK(sym)
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200

Definition at line 1290 of file dwdebug_priv.h.

#define SYMBOL_WX_CONTAINER (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_type_container *wvar; \
if (!SYMBOL_IST_CONTAINER(sym)) return reterr; \
if ((sym)->extra.container) \
wvar = (sym)->extra.container; \
else \
wvar = (sym)->extra.container = (struct symbol_type_container *) \
calloc(1,sizeof(*(sym)->extra.container));
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200
#define SYMBOL_IST_CONTAINER(sym)

Definition at line 1249 of file dwdebug_priv.h.

#define SYMBOL_WX_FUNC (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_function *wvar; \
if (!SYMBOL_IS_FUNC(sym)) return reterr; \
if ((sym)->extra.function) \
wvar = (sym)->extra.function; \
else \
wvar = (sym)->extra.function = (struct symbol_function *) \
calloc(1,sizeof(*(sym)->extra.function));
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200
#define SYMBOL_IS_FUNC(sym)

Definition at line 1259 of file dwdebug_priv.h.

#define SYMBOL_WX_INLINE (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_inline *wvar; \
if (SYMBOL_IS_FUNC(sym)) { \
SYMBOL_WX_FUNC(sym,sf,reterr); \
if (!sf->ii) sf->ii = calloc(1,sizeof(*(sf->ii))); \
wvar = sf->ii; \
} \
else if (SYMBOL_IS_VAR(sym)) { \
SYMBOL_WX_VAR(sym,sv,reterr); \
if (!sv->ii) sv->ii = calloc(1,sizeof(*(sv->ii))); \
wvar = sv->ii; \
} \
else if (SYMBOL_IS_LABEL(sym)) { \
SYMBOL_WX_LABEL(sym,sl,reterr); \
if (!sl->ii) sl->ii = calloc(1,sizeof(*(sl->ii))); \
wvar = sl->ii; \
} \
else if (SYMBOL_IS_BLOCK(sym)) { \
SYMBOL_WX_BLOCK(sym,sb,reterr); \
if (!sb->ii) sb->ii = calloc(1,sizeof(*(sb->ii))); \
wvar = sb->ii; \
} \
else \
return reterr;
#define SYMBOL_WX_VAR(sym, wvar, reterr)
#define SYMBOL_WX_BLOCK(sym, wvar, reterr)
#define SYMBOL_IS_LABEL(sym)
#define SYMBOL_IS_BLOCK(sym)
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200
#define SYMBOL_WX_FUNC(sym, wvar, reterr)
#define SYMBOL_IS_FUNC(sym)
#define SYMBOL_WX_LABEL(sym, wvar, reterr)
#define SYMBOL_IS_VAR(sym)

Definition at line 1306 of file dwdebug_priv.h.

#define SYMBOL_WX_LABEL (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_label *wvar; \
if (!SYMBOL_IS_LABEL(sym)) return reterr; \
if ((sym)->extra.label) \
wvar = (sym)->extra.label; \
else \
wvar = (sym)->extra.label = (struct symbol_label *) \
calloc(1,sizeof(*(sym)->extra.label));
#define SYMBOL_IS_LABEL(sym)
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200

Definition at line 1280 of file dwdebug_priv.h.

#define SYMBOL_WX_ROOT (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_root *wvar; \
if (!SYMBOL_IS_ROOT(sym)) return reterr; \
if ((sym)->extra.root) \
wvar = (sym)->extra.root; \
else \
wvar = (sym)->extra.root = (struct symbol_root *) \
calloc(1,sizeof(*(sym)->extra.root));
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200
#define SYMBOL_IS_ROOT(sym)

Definition at line 1236 of file dwdebug_priv.h.

#define SYMBOL_WX_VAR (   sym,
  wvar,
  reterr 
)
Value:
struct symbol_variable *wvar; \
if (!SYMBOL_IS_VAR(sym)) return reterr; \
if ((sym)->extra.variable) \
wvar = (sym)->extra.variable; \
else \
wvar = (sym)->extra.variable = (struct symbol_variable *) \
calloc(1,sizeof(*(sym)->extra.variable));
void * calloc(size_t nmemb, size_t size)
Definition: debugserver.c:200
#define SYMBOL_IS_VAR(sym)

Definition at line 1270 of file dwdebug_priv.h.

#define SYMBOLX_BLOCK (   sym)    (sym)->extra.block

Definition at line 1288 of file dwdebug_priv.h.

#define SYMBOLX_CONTAINER (   sym)    (sym)->extra.container

Definition at line 1246 of file dwdebug_priv.h.

#define SYMBOLX_ENCODING_V (   sym)    (sym)->extra.encoding

Definition at line 1244 of file dwdebug_priv.h.

#define SYMBOLX_FUNC (   sym)    (sym)->extra.function

Definition at line 1257 of file dwdebug_priv.h.

#define SYMBOLX_INLINE (   sym)
Value:
(!SYMBOL_HAS_EXTRA(sym) ? NULL : \
(SYMBOL_IS_VAR(sym) ? SYMBOLX_VAR(sym)->ii : \
(SYMBOL_IS_FUNC(sym) ? SYMBOLX_FUNC(sym)->ii : \
(SYMBOL_IS_LABEL(sym) ? SYMBOLX_LABEL(sym)->ii : \
(SYMBOL_IS_BLOCK(sym) ? SYMBOLX_BLOCK(sym)->ii : NULL)))))
#define SYMBOL_IS_LABEL(sym)
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOLX_VAR(sym)
#define SYMBOL_HAS_EXTRA(sym)
#define SYMBOLX_FUNC(sym)
#define SYMBOLX_LABEL(sym)
#define SYMBOL_IS_FUNC(sym)
#define SYMBOL_IS_VAR(sym)
#define SYMBOLX_BLOCK(sym)

Definition at line 1298 of file dwdebug_priv.h.

#define SYMBOLX_LABEL (   sym)    (sym)->extra.label

Definition at line 1278 of file dwdebug_priv.h.

#define SYMBOLX_MEMBERS (   sym)
Value:
(!SYMBOL_HAS_EXTRA(sym) ? NULL : \
(SYMBOL_IS_FUNC(sym) ? SYMBOLX_FUNC(sym)->members : \
(SYMBOL_IS_FUNC(sym) ? SYMBOLX_FUNC(sym)->members : \
(SYMBOL_IST_ENUM(sym) ? (sym)->extra.members : \
(SYMBOL_IST_CONTAINER(sym) ? SYMBOLX_CONTAINER(sym)->members : NULL)))))
#define SYMBOL_IST_ENUM(sym)
#define SYMBOLX_CONTAINER(sym)
#define SYMBOL_HAS_EXTRA(sym)
#define SYMBOLX_FUNC(sym)
#define SYMBOL_IST_CONTAINER(sym)
#define SYMBOL_IS_FUNC(sym)

Definition at line 1330 of file dwdebug_priv.h.

#define SYMBOLX_ROOT (   sym)    (sym)->extra.root

Definition at line 1234 of file dwdebug_priv.h.

#define SYMBOLX_SCOPE (   sym)
Value:
(!SYMBOL_HAS_EXTRA(sym) ? NULL : \
(SYMBOL_IS_FUNC(sym) ? SYMBOLX_FUNC(sym)->scope : \
(SYMBOL_IST_CONTAINER(sym) ? SYMBOLX_CONTAINER(sym)->scope : \
(SYMBOL_IS_ROOT(sym) ? SYMBOLX_ROOT(sym)->scope : \
(SYMBOL_IS_BLOCK(sym) ? SYMBOLX_BLOCK(sym)->scope : NULL)))))
#define SYMBOLX_ROOT(sym)
#define SYMBOLX_CONTAINER(sym)
#define SYMBOL_IS_BLOCK(sym)
#define SYMBOL_HAS_EXTRA(sym)
#define SYMBOL_IS_ROOT(sym)
#define SYMBOLX_FUNC(sym)
#define SYMBOL_IST_CONTAINER(sym)
#define SYMBOL_IS_FUNC(sym)
#define SYMBOLX_BLOCK(sym)

Definition at line 1336 of file dwdebug_priv.h.

#define SYMBOLX_SUBRANGES (   sym)    (sym)->extra.subranges

Definition at line 1245 of file dwdebug_priv.h.

#define SYMBOLX_VAR (   sym)    (sym)->extra.variable

Definition at line 1268 of file dwdebug_priv.h.

#define SYMBOLX_VAR_CONSTVAL (   sym)
Value:
(!SYMBOL_HAS_EXTRA(sym) ? NULL : \
(SYMBOL_IS_VAR(sym) ? SYMBOLX_VAR(sym)->constval : NULL))
#define SYMBOLX_VAR(sym)
#define SYMBOL_HAS_EXTRA(sym)
#define SYMBOL_IS_VAR(sym)

Definition at line 1345 of file dwdebug_priv.h.

#define SYMBOLX_VAR_LOC (   sym)
Value:
(!SYMBOL_HAS_EXTRA(sym) ? NULL : \
(SYMBOL_IS_VAR(sym) ? SYMBOLX_VAR(sym)->loc : NULL))
#define SYMBOLX_VAR(sym)
#define SYMBOL_HAS_EXTRA(sym)
#define SYMBOL_IS_VAR(sym)

Definition at line 1342 of file dwdebug_priv.h.

#define WARNDUMPSCOPE (   s)
Value:
vwarnc( "scope(%s:0x%"PRIxSMOFFSET",[0x%"PRIxADDR",0x%"PRIxADDR"%s]," \
" refcnt=%"PRIiREFCNT")", \
((s)->symbol) ? symbol_get_name((s)->symbol) : "NULL", \
(s)->ref,((s)->range) ? (s)->range->start : 0, \
((s)->range) ? (s)->range->end : 0, \
((s)->range && (s)->range->next) ? ",..." : "",(s)->refcnt);
ADDR start
Definition: dwdebug_priv.h:437
#define PRIxSMOFFSET
Definition: common.h:102
#define vwarnc(format,...)
Definition: log.h:35
#define PRIxADDR
Definition: common.h:67
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define PRIiREFCNT
Definition: common.h:125

Definition at line 84 of file dwdebug_priv.h.

#define WARNDUMPSCOPE_NL (   s)
Value:
verrorc("\n");
#define verrorc(format,...)
Definition: log.h:32
#define WARNDUMPSCOPE(s)
Definition: dwdebug_priv.h:84

Definition at line 92 of file dwdebug_priv.h.

#define WARNDUMPSYMBOL (   s)
Value:
vwarnc("symbol(%s,%s,0x%"PRIxSMOFFSET",refcnt=%"PRIiREFCNT")", \
symbol_get_name((s)),SYMBOL_TYPE((s)->type),(s)->ref,(s)->refcnt);
#define PRIxSMOFFSET
Definition: common.h:102
#define vwarnc(format,...)
Definition: log.h:35
char * SYMBOL_TYPE(int n)
Definition: debug.c:5662
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define PRIiREFCNT
Definition: common.h:125

Definition at line 34 of file dwdebug_priv.h.

#define WARNDUMPSYMBOL_NL (   s)
Value:
vwarnc("\n");
#define vwarnc(format,...)
Definition: log.h:35
#define WARNDUMPSYMBOL(s)
Definition: dwdebug_priv.h:34

Definition at line 38 of file dwdebug_priv.h.

#define WARNOPTDUMPSYMBOL (   wl,
  lt,
  lf,
 
)
Value:
vwarnoptc(wl,lt,lf,"symbol(%s,%s,0x%"PRIxSMOFFSET",refcnt=%"PRIiREFCNT")", \
symbol_get_name((s)),SYMBOL_TYPE((s)->type),(s)->ref,(s)->refcnt);
#define PRIxSMOFFSET
Definition: common.h:102
char * SYMBOL_TYPE(int n)
Definition: debug.c:5662
char * symbol_get_name(struct symbol *symbol)
Definition: debug.c:2587
#define vwarnoptc(level, area, flags, format,...)
Definition: log.h:41
#define PRIiREFCNT
Definition: common.h:125

Definition at line 42 of file dwdebug_priv.h.

#define WARNOPTDUMPSYMBOL_NL (   wl,
  lt,
  lf,
 
)
Value:
WARNOPTDUMPSYMBOL(wl,lt,lf,(s)); \
vwarnoptc(wl,lt,lf,"\n");
#define WARNOPTDUMPSYMBOL(wl, lt, lf, s)
Definition: dwdebug_priv.h:42
#define vwarnoptc(level, area, flags, format,...)
Definition: log.h:41

Definition at line 46 of file dwdebug_priv.h.

Typedef Documentation

typedef char* dwarf_cfa_info_t

Definition at line 1082 of file dwdebug_priv.h.

typedef void(* symdict_symbol_dtor_t)(struct symbol *symbol, void *priv)

Definition at line 419 of file dwdebug_priv.h.

Function Documentation

struct symbol* __symbol_get_one_member__int ( struct symbol symbol,
char *  member,
struct array_list **  chainptr 
)

Definition at line 3815 of file debug.c.

int debugfile_add_global ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 2262 of file debug.c.

int debugfile_add_type ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 2300 of file debug.c.

struct debugfile* debugfile_create ( debugfile_type_t  dtype,
debugfile_type_flags_t  dtflags,
struct binfile binfile,
struct debugfile_load_opts opts,
struct binfile binfile_pointing 
)

Definition at line 1336 of file debug.c.

struct debugfile* debugfile_create_basic ( debugfile_type_t  dtype,
debugfile_type_flags_t  dtflags,
char *  filename,
struct debugfile_load_opts opts 
)

Definition at line 1298 of file debug.c.

int debugfile_declaration_copy_definition ( struct debugfile debugfile,
struct symbol declaration,
struct symbol definition 
)

Definition at line 1994 of file debug.c.

int debugfile_define_by_specification ( struct debugfile debugfile,
struct symbol specification,
struct symbol definition 
)
struct symbol* debugfile_find_type ( struct debugfile debugfile,
char *  typename 
)

Definition at line 2288 of file debug.c.

REFCNT debugfile_free ( struct debugfile debugfile,
int  force 
)

Definition at line 2384 of file debug.c.

void debugfile_handle_declaration ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 2100 of file debug.c.

int debugfile_insert_root ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 1891 of file debug.c.

int debugfile_load_debuginfo ( struct debugfile debugfile)
int debugfile_load_elfsymtab ( struct debugfile debugfile,
Elf *  elf,
char *  elf_filename 
)

Definition at line 331 of file debug_elf.c.

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

Definition at line 503 of file debug.c.

int debugfile_lookup_addr_alt__int ( struct debugfile debugfile,
ADDR  addr,
struct lsymbol **  primary,
struct lsymbol **  alt 
)

Definition at line 580 of file debug.c.

struct symbol* debugfile_lookup_root ( struct debugfile debugfile,
SMOFFSET  offset 
)

Definition at line 1972 of file debug.c.

struct symbol* debugfile_lookup_root_name ( struct debugfile debugfile,
char *  name 
)

Definition at line 1978 of file debug.c.

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

Definition at line 677 of file debug.c.

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

Definition at line 463 of file debug.c.

int debugfile_remove_root ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 1933 of file debug.c.

int debugfile_replace_type ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 2334 of file debug.c.

void debugfile_resolve_declarations ( struct debugfile debugfile)

Definition at line 2250 of file debug.c.

void debugfile_resolve_one_declaration ( struct debugfile debugfile,
char *  name 
)

Definition at line 2241 of file debug.c.

void debugfile_save_declaration ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 2081 of file debug.c.

int debugfile_update_root ( struct debugfile debugfile,
struct symbol symbol 
)

Definition at line 1826 of file debug.c.

struct location* dwarf_get_static_ops ( struct symbol_root_dwarf srd,
const unsigned char *  data,
Dwarf_Word  len,
unsigned int  attr 
)

Definition at line 987 of file dwarf_expr.c.

loctype_t dwarf_location_resolve ( const unsigned char *  data,
unsigned int  len,
struct location_ctxt lctxt,
struct symbol symbol,
struct location o_loc 
)

Definition at line 213 of file dwarf_expr.c.

void g_hash_foreach_dump_symbol ( gpointer key   __attribute__(unused),
gpointer  value,
gpointer  userdata 
)

Definition at line 4860 of file debug.c.

void g_hash_foreach_dump_symbol_list ( gpointer key   __attribute__(unused),
gpointer  value,
gpointer  userdata 
)

Miscellaneous.

Data structure dumping functions.

Definition at line 4847 of file debug.c.

struct location* location_copy ( struct location location)

Definition at line 313 of file location.c.

struct location_ctxt* location_ctxt_create ( struct location_ops ops,
void *  priv 
)

Definition at line 802 of file location.c.

void location_ctxt_free ( struct location_ctxt lctxt)

Definition at line 812 of file location.c.

int location_ctxt_get_lops ( struct location_ctxt lctxt,
struct location_ops **  ops,
void **  priv 
)
int location_ctxt_read_reg ( struct location_ctxt lctxt,
REG  reg,
REGVAL o_regval 
)

Definition at line 632 of file location.c.

int location_ctxt_read_retaddr ( struct location_ctxt lctxt,
ADDR o_retaddr 
)

Definition at line 576 of file location.c.

int location_ctxt_write_reg ( REG  reg,
struct location_ctxt lctxt,
REGVAL  regval 
)
void location_dump ( struct location location,
struct dump_info ud 
)

Definition at line 392 of file location.c.

void location_internal_free ( struct location location)

Definition at line 347 of file location.c.

loctype_t location_resolve ( struct location loc,
struct location_ctxt lctxt,
struct symbol symbol,
struct location o_loc 
)

Definition at line 825 of file location.c.

int location_set_addr ( struct location l,
ADDR  addr 
)

Definition at line 46 of file location.c.

int location_set_fbreg_offset ( struct location l,
OFFSET  offset 
)

Definition at line 98 of file location.c.

int location_set_implicit_data ( struct location loc,
char *  data,
int  len,
int  nocopy 
)

Definition at line 128 of file location.c.

int location_set_implicit_word ( struct location loc,
ADDR  word 
)

Definition at line 119 of file location.c.

int location_set_loclist ( struct location l,
struct loclistloc list 
)

Definition at line 107 of file location.c.

int location_set_member_offset ( struct location l,
OFFSET  offset 
)

Definition at line 89 of file location.c.

int location_set_reg ( struct location l,
REG  reg 
)

Definition at line 55 of file location.c.

int location_set_reg_addr ( struct location l,
REG  reg 
)

Definition at line 64 of file location.c.

int location_set_reg_offset ( struct location l,
REG  reg,
OFFSET  offset 
)

Definition at line 73 of file location.c.

int location_set_runtime ( struct location l,
char *  data,
int  len,
int  nocopy 
)

Definition at line 164 of file location.c.

int location_update_loclist ( struct location loc,
ADDR  start,
ADDR  end,
struct location rloc,
int *  action 
)

Definition at line 199 of file location.c.

void lsymbol_append ( struct lsymbol lsymbol,
struct symbol symbol 
)

Definition at line 4610 of file debug.c.

struct lsymbol* lsymbol_create ( struct symbol symbol,
struct array_list chain 
)

Lookup symbols (lsymbols).

Lookup symbols. Badly named!

Definition at line 4595 of file debug.c.

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

Definition at line 4632 of file debug.c.

struct lsymbol* lsymbol_create_from_symbol__int ( struct symbol symbol)

Definition at line 4657 of file debug.c.

struct lsymbol* lsymbol_create_noninline__int ( struct lsymbol lsymbol)

Definition at line 4757 of file debug.c.

REFCNT lsymbol_free ( struct lsymbol lsymbol,
int  force 
)

Definition at line 4811 of file debug.c.

void lsymbol_hold_int ( struct lsymbol lsymbol)

Definition at line 4798 of file debug.c.

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

Definition at line 275 of file debug.c.

void lsymbol_prepend ( struct lsymbol lsymbol,
struct symbol symbol 
)

Definition at line 4623 of file debug.c.

int scope_contains_addr ( struct scope scope,
ADDR  addr 
)

Definition at line 504 of file scope.c.

struct scope* scope_create ( struct symbol symbol,
SMOFFSET  ref 
)

Scopes.

Definition at line 37 of file scope.c.

void scope_dump ( struct scope scope,
struct dump_info ud 
)

Definition at line 409 of file scope.c.

REFCNT scope_free ( struct scope scope,
int  force 
)

Definition at line 352 of file scope.c.

char* scope_get_name ( struct scope scope)

Definition at line 50 of file scope.c.

int scope_get_overall_range ( struct scope scope,
ADDR low_addr_saveptr,
ADDR high_addr_saveptr,
int *  is_noncontiguous 
)

Definition at line 290 of file scope.c.

int scope_get_sizes ( struct scope scope,
int *  named,
int *  duplicated,
int *  anon,
int *  numscopes 
)

Definition at line 263 of file scope.c.

struct symbol* scope_get_sym ( struct scope scope,
const char *  name,
symbol_type_flag_t  flags 
)

Definition at line 771 of file scope.c.

int scope_hold_symbol ( struct scope scope,
struct symbol symbol 
)

Definition at line 73 of file scope.c.

int scope_insert_scope ( struct scope parent,
struct scope child 
)

Definition at line 88 of file scope.c.

int scope_insert_symbol ( struct scope scope,
struct symbol symbol 
)

Definition at line 57 of file scope.c.

struct lsymbol* scope_lookup_sym ( struct scope scope,
const char *  name,
const char *  delim,
symbol_type_flag_t  flags 
)

Definition at line 758 of file scope.c.

struct lsymbol* scope_lookup_sym__int ( struct scope scope,
const char *  name,
const char *  delim,
symbol_type_flag_t  flags 
)

Definition at line 573 of file scope.c.

GSList* scope_match_syms ( struct scope scope,
struct rfilter symbol_filter,
symbol_type_flag_t  flags 
)

Definition at line 811 of file scope.c.

int scope_remove_scope ( struct scope parent,
struct scope child 
)

Definition at line 110 of file scope.c.

int scope_remove_symbol ( struct scope scope,
struct symbol symbol 
)

Definition at line 132 of file scope.c.

void scope_update_range ( struct scope scope,
ADDR  start,
ADDR  end,
int *  action 
)

Definition at line 166 of file scope.c.

int symbol_add_inline_instance ( struct symbol symbol,
struct symbol instance 
)

Definition at line 3420 of file debug.c.

int symbol_add_subrange ( struct symbol symbol,
int  subrange 
)

Definition at line 3448 of file debug.c.

void symbol_build_extname ( struct symbol symbol)

Definition at line 2628 of file debug.c.

int symbol_change_parent ( struct symbol parent,
struct symbol child,
struct symbol newparent 
)

Definition at line 2884 of file debug.c.

struct scope* symbol_containing_scope ( struct symbol symbol)

Definition at line 2671 of file debug.c.

int symbol_expand ( struct symbol symbol)

Definition at line 3161 of file debug.c.

REFCNT symbol_free ( struct symbol symbol,
int  force 
)

Definition at line 4516 of file debug.c.

void symbol_free_extra ( struct symbol symbol)

Definition at line 4402 of file debug.c.

char* symbol_get_name_orig ( struct symbol symbol)

Definition at line 2612 of file debug.c.

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

Definition at line 4123 of file debug.c.

int symbol_has_ext_name ( struct symbol symbol)

Definition at line 2667 of file debug.c.

int symbol_insert_symbol ( struct symbol parent,
struct symbol child 
)

Definition at line 2758 of file debug.c.

struct scope* symbol_link_owned_scope ( struct symbol symbol,
struct scope new_parent 
)

Definition at line 2726 of file debug.c.

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

Definition at line 195 of file debug.c.

struct scope* symbol_read_owned_scope ( struct symbol symbol)

Definition at line 2674 of file debug.c.

int symbol_remove_symbol ( struct symbol parent,
struct symbol child 
)

Definition at line 2845 of file debug.c.

void symbol_set_addr ( struct symbol s,
ADDR  a 
)

Definition at line 3276 of file debug.c.

void symbol_set_bitoffset ( struct symbol s,
uint32_t  bo 
)

Definition at line 3247 of file debug.c.

void symbol_set_bitsize ( struct symbol s,
uint32_t  b 
)

Definition at line 3232 of file debug.c.

void symbol_set_bitsize_all ( struct symbol s,
uint32_t  b,
uint32_t  bo,
uint32_t  ctb 
)

Definition at line 3262 of file debug.c.

void symbol_set_bytesize ( struct symbol s,
uint32_t  b 
)

Definition at line 3219 of file debug.c.

int symbol_set_constval ( struct symbol symbol,
void *  value,
int  len,
int  copy 
)

Definition at line 3429 of file debug.c.

int symbol_set_encoding ( struct symbol symbol,
encoding_t  num 
)

Definition at line 3332 of file debug.c.

int symbol_set_entry_pc ( struct symbol symbol,
ADDR  entry_pc 
)

Definition at line 3340 of file debug.c.

int symbol_set_inline_info ( struct symbol symbol,
int  isinlined,
int  isdeclinline 
)

Definition at line 3389 of file debug.c.

int symbol_set_inline_origin ( struct symbol symbol,
SMOFFSET  ref,
struct symbol origin 
)

Definition at line 3395 of file debug.c.

int symbol_set_location ( struct symbol symbol,
struct location loc 
)

Definition at line 3365 of file debug.c.

void symbol_set_name ( struct symbol symbol,
char *  name,
int  name_copy 
)

Definition at line 2615 of file debug.c.

int symbol_set_root_compdir ( struct symbol symbol,
char *  compdirname,
int  copy 
)

Definition at line 3294 of file debug.c.

int symbol_set_root_language ( struct symbol symbol,
char *  language,
int  copy,
short int  lang_code 
)

Definition at line 3318 of file debug.c.

int symbol_set_root_priv ( struct symbol symbol,
void *  priv 
)

Definition at line 3288 of file debug.c.

int symbol_set_root_producer ( struct symbol symbol,
char *  producer,
int  copy 
)

Definition at line 3306 of file debug.c.

void symbol_set_srcline ( struct symbol s,
int  sl 
)

Definition at line 3194 of file debug.c.

struct scope* symbol_write_owned_scope ( struct symbol symbol)

Definition at line 2689 of file debug.c.

struct symdict* symdict_create ( void  )

Refcnt rules for debugfiles, binfiles, scopes, and symbols:

1) debugfiles/binfiles only hold on their root symbol; 2) scopes hold symbols inserted into them; 3) scopes hold scopes inserted into them (including for symbols inserted into them); 4) symbols hold on scopes they own; 5) symbols DO NOT hold on their datatype unless it is shared; and NOT the symbols in their scope (the scope holds those). 6) definitions/inlines...

Symdicts.

Definition at line 35 of file symdict.c.

void symdict_dump ( struct symdict symdict,
struct dump_info ud 
)

Definition at line 317 of file symdict.c.

void symdict_free ( struct symdict symdict,
symdict_symbol_dtor_t  ssd,
void *  priv 
)

Definition at line 271 of file symdict.c.

int symdict_get_size ( struct symdict symdict)

Definition at line 68 of file symdict.c.

int symdict_get_size_named ( struct symdict symdict)

Definition at line 89 of file symdict.c.

int symdict_get_size_simple ( struct symdict symdict)

Definition at line 55 of file symdict.c.

int symdict_get_sizes ( struct symdict symdict,
int *  named,
int *  duplicated,
int *  anon 
)

Definition at line 108 of file symdict.c.

struct symbol* symdict_get_sym ( struct symdict symdict,
const char *  name,
symbol_type_flag_t  flags 
)

Symdict lookup functions.

Definition at line 348 of file symdict.c.

int symdict_insert_symbol ( struct symdict symdict,
struct symbol symbol 
)

Definition at line 141 of file symdict.c.

int symdict_insert_symbol_anon ( struct symdict symdict,
struct symbol symbol 
)

Definition at line 201 of file symdict.c.

GSList* symdict_match_syms ( struct symdict symdict,
struct rfilter symbol_filter,
symbol_type_flag_t  flags 
)

Definition at line 481 of file symdict.c.

GSList* symdict_match_syms_by_tab ( struct symdict symdict,
struct rfilter symbol_filter,
symbol_type_flag_t  flags,
int  no_main,
int  no_dup,
int  no_anon 
)

Definition at line 419 of file symdict.c.

int symdict_remove_symbol ( struct symdict symdict,
struct symbol symbol 
)

Definition at line 223 of file symdict.c.

Variable Documentation

symdict_symbol_dtor_t default_symdict_symbol_dtor

Definition at line 268 of file symdict.c.

struct debugfile_ops dwarf_debugfile_ops

DWARF debugfile backend API stuff.

Definition at line 4846 of file dwarf_debuginfo.c.