Lines Matching defs:die

233   visit_top_die(Dwarf_die* die);
237 visit_children(Dwarf_die* die, Dwarf_die* context);
241 visit_die(Dwarf_die* die, Dwarf_die* context);
245 visit_children_for_decls(Dwarf_die* die);
249 visit_die_for_decls(Dwarf_die* die, Dwarf_die* context);
254 guess_full_class_name(Dwarf_die* die);
258 add_declaration(Dwarf_die* die, Dwarf_die* context);
262 add_declaration_with_full_name(Dwarf_die* die, const char* full_name);
270 get_qualified_name(Dwarf_die* die, Dwarf_die* context);
274 record_cu_ranges(Dwarf_die* die);
278 read_pubnames_and_pubtypes(Dwarf_die* die);
351 Gdb_index_info_reader::visit_top_die(Dwarf_die* die)
355 switch (die->tag())
359 this->cu_language_ = die->int_attribute(elfcpp::DW_AT_language);
360 if (die->tag() == elfcpp::DW_TAG_compile_unit)
361 this->record_cu_ranges(die);
365 if (!this->read_pubnames_and_pubtypes(die))
383 if (die->tag() == elfcpp::DW_TAG_compile_unit)
387 this->visit_children(die, NULL);
411 Dwarf_die die(this, die_offset, parent);
412 if (die.tag() == 0)
414 this->visit_die(&die, context);
415 next_offset = die.sibling_offset();
424 Gdb_index_info_reader::visit_die(Dwarf_die* die, Dwarf_die* context)
426 switch (die->tag())
433 if (die->is_declaration())
434 this->add_declaration(die, context);
438 std::string full_name = this->get_qualified_name(die, context);
459 && (die->tag() == elfcpp::DW_TAG_class_type
460 || die->tag() == elfcpp::DW_TAG_structure_type
461 || die->tag() == elfcpp::DW_TAG_union_type))
462 full_name.assign(this->guess_full_class_name(die));
467 this->add_declaration(die, context);
469 this->add_declaration_with_full_name(die, full_name.c_str());
474 if (die->tag() == elfcpp::DW_TAG_namespace
475 || !die->is_declaration())
478 full_name = this->get_qualified_name(die, context);
488 if (die->tag() == elfcpp::DW_TAG_namespace
489 || die->tag() == elfcpp::DW_TAG_enumeration_type)
490 this->visit_children(die, die);
492 this->visit_children_for_decls(die);
511 Dwarf_die die(this, die_offset, parent);
512 if (die.tag() == 0)
514 this->visit_die_for_decls(&die, parent);
515 next_offset = die.sibling_offset();
523 Gdb_index_info_reader::visit_die_for_decls(Dwarf_die* die, Dwarf_die* context)
525 switch (die->tag())
533 if (die->is_declaration())
534 this->add_declaration(die, context);
546 if (die->is_declaration())
547 this->add_declaration(die, context);
548 this->visit_children_for_decls(die);
649 Gdb_index_info_reader::guess_full_class_name(Dwarf_die* die)
659 for (off_t child_offset = die->child_offset();
663 Dwarf_die child(this, child_offset, die);
690 Gdb_index_info_reader::add_declaration(Dwarf_die* die, Dwarf_die* context)
692 const char* name = die->name();
698 off_t spec = die->specification();
700 spec = die->abstract_origin();
713 if (die->tag() == elfcpp::DW_TAG_namespace)
715 else if (die->tag() == elfcpp::DW_TAG_union_type)
722 this->declarations_.insert(std::make_pair(die->offset(), decl));
732 Dwarf_die* die,
742 this->declarations_.insert(std::make_pair(die->offset(), decl));
769 Gdb_index_info_reader::get_qualified_name(Dwarf_die* die, Dwarf_die* context)
772 const char* name = die->name();
778 off_t spec = die->specification();
780 spec = die->abstract_origin();
791 if (name == NULL && die->tag() == elfcpp::DW_TAG_namespace)
798 if (die->tag() == elfcpp::DW_TAG_enumerator)
818 Gdb_index_info_reader::record_cu_ranges(Dwarf_die* die)
823 off_t ranges_offset = die->ref_attribute(elfcpp::DW_AT_ranges, &shndx);
833 off_t low_pc = die->address_attribute(elfcpp::DW_AT_low_pc, &shndx);
834 off_t high_pc = die->address_attribute(elfcpp::DW_AT_high_pc, &shndx2);
837 high_pc = die->uint_attribute(elfcpp::DW_AT_high_pc);
889 Gdb_index_info_reader::read_pubnames_and_pubtypes(Dwarf_die* die)
891 // If this is a skeleton debug-type die (generated via
895 if (die->tag() == elfcpp::DW_TAG_type_unit
896 && die->string_attribute(elfcpp::DW_AT_GNU_dwo_name))
902 off_t stmt_list_off = die->ref_attribute (elfcpp::DW_AT_stmt_list,
905 off_t offset = die->ref_attribute(elfcpp::DW_AT_GNU_pubnames, &shndx);
909 unsigned int flag = die->uint_attribute(elfcpp::DW_AT_GNU_pubnames);
913 if (die->tag() == elfcpp::DW_TAG_type_unit)
915 // If die is a TU, then it might correspond to a CU which we
1019 // when we encounter the die for that cu or tu.