Lines Matching defs:die_mem
120 Dwarf_Die die_mem;
123 if (die_find_realfunc(cu_die, addr, &die_mem)
124 && die_entrypc(&die_mem, &faddr) == 0 &&
126 *fname = die_get_decl_file(&die_mem);
127 dwarf_decl_line(&die_mem, lineno);
143 static int __die_find_inline_cb(Dwarf_Die *die_mem, void *data);
158 Dwarf_Die die_mem;
163 for (sc_die = die_find_realfunc(cu_die, addr, &die_mem);
166 &die_mem)) {
252 * @die_mem: where to store a type DIE
255 * it to die_mem. Return NULL if fails to get a type DIE.
257 Dwarf_Die *die_get_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem)
262 dwarf_formref_die(&attr, die_mem))
263 return die_mem;
269 static Dwarf_Die *__die_get_real_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem)
274 vr_die = die_get_type(vr_die, die_mem);
289 * @die_mem: where to store a type DIE
292 * it to die_mem. Return NULL if fails to get a type DIE.
296 Dwarf_Die *die_get_real_type(Dwarf_Die *vr_die, Dwarf_Die *die_mem)
299 vr_die = __die_get_real_type(vr_die, die_mem);
522 * @die_mem: a buffer for result DIE
526 * @die_mem and returns it. If @callback returns DIE_FIND_CB_CONTINUE,
534 void *data, Dwarf_Die *die_mem)
539 ret = dwarf_child(rt_die, die_mem);
544 ret = callback(die_mem, data);
546 return die_mem;
549 die_find_child(die_mem, callback, data, &child_die)) {
550 memcpy(die_mem, &child_die, sizeof(Dwarf_Die));
551 return die_mem;
554 dwarf_siblingof(die_mem, die_mem) == 0);
561 Dwarf_Die *die_mem;
572 memcpy(ad->die_mem, fn_die, sizeof(Dwarf_Die));
583 * @die_mem: a buffer for result DIE
586 * DIE to @die_mem and returns it if found. Returns NULL if failed.
589 Dwarf_Die *die_mem)
593 ad.die_mem = die_mem;
598 return die_mem;
612 memcpy(ad->die_mem, fn_die, sizeof(Dwarf_Die));
622 * @die_mem: a buffer for result DIE
625 * DIE to @die_mem and returns it if found. Returns NULL if failed.
628 Dwarf_Die *die_mem)
632 ad.die_mem = die_mem;
637 return die_mem;
641 static int __die_find_inline_cb(Dwarf_Die *die_mem, void *data)
645 if (dwarf_tag(die_mem) == DW_TAG_inlined_subroutine &&
646 dwarf_haspc(die_mem, *addr))
656 * @die_mem: a buffer for result DIE
659 * DIE to @die_mem and returns it if found. Returns NULL if failed.
664 Dwarf_Die *die_mem)
666 return die_find_child(sp_die, __die_find_inline_cb, &addr, die_mem);
673 * @die_mem: a buffer for result DIE
676 * DIE to @die_mem and returns it if found. Returns NULL if failed.
681 Dwarf_Die *die_mem)
691 memcpy(die_mem, sp_die, sizeof(Dwarf_Die));
696 return die_mem;
755 Dwarf_Die die_mem;
766 die_find_child(&cu_die, __die_walk_instances_cb, &iwp, &die_mem);
821 Dwarf_Die die_mem;
834 die_find_child(sp_die, __die_walk_funclines_cb, &lw, &die_mem);
874 Dwarf_Die die_mem, *cu_die;
880 cu_die = dwarf_diecu(rt_die, &die_mem, NULL, NULL);
928 if (die_find_inlinefunc(rt_die, addr, &die_mem)) {
930 inf = die_get_call_file(&die_mem);
932 die_get_call_lineno(&die_mem) == lineno)
935 dwarf_decl_line(&die_mem, &inl);
937 decf != die_get_decl_file(&die_mem))
979 static int __die_find_variable_cb(Dwarf_Die *die_mem, void *data)
985 tag = dwarf_tag(die_mem);
988 die_compare_name(die_mem, fvp->name) &&
993 (dwarf_attr(die_mem, DW_AT_external, &attr) ||
994 dwarf_attr(die_mem, DW_AT_location, &attr) ||
995 dwarf_attr(die_mem, DW_AT_const_value, &attr)))
997 if (dwarf_haspc(die_mem, fvp->addr))
1008 * @die_mem: a buffer for result DIE
1013 Dwarf_Addr addr, Dwarf_Die *die_mem)
1018 die_mem);
1021 static int __die_find_member_cb(Dwarf_Die *die_mem, void *data)
1025 if (dwarf_tag(die_mem) == DW_TAG_member) {
1026 if (die_compare_name(die_mem, name))
1028 else if (!dwarf_diename(die_mem)) { /* Unnamed structure */
1030 if (die_get_type(die_mem, &type_die) &&
1042 * @die_mem: a buffer for result DIE
1047 Dwarf_Die *die_mem)
1050 die_mem);