Lines Matching refs:dw_die

178  * @dw_die: A DIE of the object
180 * Get the linkage name attribute of given @dw_die.
183 const char *die_get_linkage_name(Dwarf_Die *dw_die)
187 if (dwarf_attr_integrate(dw_die, DW_AT_linkage_name, &attr) == NULL)
194 * @dw_die: a DIE
197 * Compare the name of @dw_die and @tname. Return false if @dw_die has no name.
199 bool die_compare_name(Dwarf_Die *dw_die, const char *tname)
203 name = dwarf_diename(dw_die);
209 * @dw_die: a DIE
212 * Glob matching the name of @dw_die and @glob. Return false if matching fail.
215 bool die_match_name(Dwarf_Die *dw_die, const char *glob)
219 name = dwarf_diename(dw_die);
223 name = die_get_linkage_name(dw_die);
338 * @dw_die: a DIE
341 * returns true if @dw_die is a function definition.
343 bool die_is_func_def(Dwarf_Die *dw_die)
348 if (dwarf_tag(dw_die) != DW_TAG_subprogram)
351 if (dwarf_attr(dw_die, DW_AT_declaration, &attr))
360 if (!dwarf_attr(dw_die, DW_AT_inline, &attr) &&
361 die_entrypc(dw_die, &addr) < 0)
369 * @dw_die: a DIE
376 int die_entrypc(Dwarf_Die *dw_die, Dwarf_Addr *addr)
384 if (dwarf_entrypc(dw_die, addr) == 0)
391 if (!dwarf_attr(dw_die, DW_AT_ranges, &attr))
394 return dwarf_ranges(dw_die, 0, &base, addr, &end) < 0 ? -ENOENT : 0;
399 * @dw_die: a DIE
402 * This returns true if @dw_die is a function instance. If not, the @dw_die
406 bool die_is_func_instance(Dwarf_Die *dw_die)
410 int tag = dwarf_tag(dw_die);
416 return dwarf_entrypc(dw_die, &tmp) == 0 ||
417 dwarf_attr(dw_die, DW_AT_ranges, &attr_mem) != NULL;
477 static const char *die_get_file_name(Dwarf_Die *dw_die, int idx)
483 if (idx < 0 || !dwarf_attr_integrate(dw_die, DW_AT_decl_file, &attr_mem) ||
505 * @dw_die: a DIE for something declared.
507 * Get declared file name of @dw_die.
512 const char *die_get_decl_file(Dwarf_Die *dw_die)
514 return die_get_file_name(dw_die, die_get_decl_fileno(dw_die));