Lines Matching refs:vr_die
317 static Dwarf_Die *die_get_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem) in die_get_type() argument
321 if (dwarf_attr_integrate(vr_die, DW_AT_type, &attr) && in die_get_type()
329 static Dwarf_Die *__die_get_real_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem) in __die_get_real_type() argument
334 vr_die = die_get_type(vr_die, die_mem); in __die_get_real_type()
335 if (!vr_die) in __die_get_real_type()
337 tag = dwarf_tag(vr_die); in __die_get_real_type()
343 return vr_die; in __die_get_real_type()
347 static Dwarf_Die *die_get_real_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem) in die_get_real_type() argument
350 vr_die = __die_get_real_type(vr_die, die_mem); in die_get_real_type()
351 } while (vr_die && dwarf_tag(vr_die) == DW_TAG_typedef); in die_get_real_type()
353 return vr_die; in die_get_real_type()
732 static int die_get_typename(Dwarf_Die *vr_die, char *buf, int len) in die_get_typename() argument
738 if (__die_get_real_type(vr_die, &type) == NULL) in die_get_typename()
768 static int die_get_varname(Dwarf_Die *vr_die, char *buf, int len) in die_get_varname() argument
772 ret = die_get_typename(vr_die, buf, len); in die_get_varname()
779 dwarf_diename(vr_die)); in die_get_varname()
802 static int convert_variable_location(Dwarf_Die *vr_die, Dwarf_Addr addr, in convert_variable_location() argument
815 if (dwarf_attr(vr_die, DW_AT_external, &attr) != NULL) in convert_variable_location()
819 if (dwarf_attr(vr_die, DW_AT_location, &attr) == NULL || in convert_variable_location()
831 ret = strlen(dwarf_diename(vr_die)); in convert_variable_location()
835 snprintf(tvar->value, ret + 2, "@%s", dwarf_diename(vr_die)); in convert_variable_location()
893 static int convert_variable_type(Dwarf_Die *vr_die, in convert_variable_type() argument
909 if (die_get_bit_size(vr_die) != 0) { in convert_variable_type()
911 ret = snprintf(buf, 16, "b%d@%d/%zd", die_get_bit_size(vr_die), in convert_variable_type()
912 die_get_bit_offset(vr_die), in convert_variable_type()
913 BYTES_TO_BITS(die_get_byte_size(vr_die))); in convert_variable_type()
917 if (die_get_real_type(vr_die, &type) == NULL) { in convert_variable_type()
919 dwarf_diename(vr_die)); in convert_variable_type()
924 dwarf_diename(vr_die), dwarf_diename(&type)); in convert_variable_type()
932 dwarf_diename(vr_die), dwarf_diename(&type)); in convert_variable_type()
954 dwarf_diename(vr_die)); in convert_variable_type()
989 static int convert_variable_fields(Dwarf_Die *vr_die, const char *varname, in convert_variable_fields() argument
1000 if (die_get_real_type(vr_die, &type) == NULL) { in convert_variable_fields()
1031 memcpy(die_mem, vr_die, sizeof(*die_mem)); in convert_variable_fields()
1105 static int convert_variable(Dwarf_Die *vr_die, struct probe_finder *pf) in convert_variable() argument
1111 dwarf_diename(vr_die)); in convert_variable()
1113 ret = convert_variable_location(vr_die, pf->addr, pf->fb_ops, in convert_variable()
1121 ret = convert_variable_fields(vr_die, pf->pvar->var, in convert_variable()
1124 vr_die = &die_mem; in convert_variable()
1127 ret = convert_variable_type(vr_die, pf->tvar, pf->pvar->type); in convert_variable()
1135 Dwarf_Die vr_die, *scopes; in find_variable() local
1175 if (die_find_variable_at(sp_die, pf->pvar->var, pf->addr, &vr_die)) in find_variable()
1176 ret = convert_variable(&vr_die, pf); in find_variable()
1186 &vr_die)) { in find_variable()
1187 ret = convert_variable(&vr_die, pf); in find_variable()