Lines Matching full:die

41 static int _dwarf_die_attr_unsigned_constant(Dwarf_Die die,
108 CU context of a DIE is known.
111 dwarf_get_die_address_size(Dwarf_Die die, in dwarf_get_die_address_size() argument
115 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_get_die_address_size()
116 address_size = die->di_cu_context->cc_address_size; in dwarf_get_die_address_size()
122 dwarf_dieoffset(Dwarf_Die die, in dwarf_dieoffset() argument
128 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_dieoffset()
129 dbg = die->di_cu_context->cc_dbg; in dwarf_dieoffset()
130 dataptr = die->di_is_info? dbg->de_debug_info.dss_data: in dwarf_dieoffset()
133 *ret_offset = (die->di_debug_ptr - dataptr); in dwarf_dieoffset()
139 the die relative to the start of its
143 dwarf_die_CU_offset(Dwarf_Die die, in dwarf_die_CU_offset() argument
150 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_die_CU_offset()
151 cu_context = die->di_cu_context; in dwarf_die_CU_offset()
152 dbg = die->di_cu_context->cc_dbg; in dwarf_die_CU_offset()
153 dataptr = die->di_is_info? dbg->de_debug_info.dss_data: in dwarf_die_CU_offset()
156 *cu_off = (die->di_debug_ptr - dataptr - cu_context->cc_debug_offset); in dwarf_die_CU_offset()
166 dwarf_die_offsets(Dwarf_Die die, in dwarf_die_offsets() argument
175 res = dwarf_dieoffset(die,&loff,error); in dwarf_die_offsets()
177 res = dwarf_die_CU_offset(die,&lcuoff,error); in dwarf_die_offsets()
194 the CU that this die is a part of.
197 dwarf_die_CU_offset_range(Dwarf_Die die, in dwarf_die_CU_offset_range() argument
204 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_die_CU_offset_range()
205 cu_context = die->di_cu_context; in dwarf_die_CU_offset_range()
216 dwarf_tag(Dwarf_Die die, Dwarf_Half * tag, Dwarf_Error * error) in dwarf_tag() argument
218 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_tag()
219 *tag = die->di_abbrev_list->abl_tag; in dwarf_tag()
230 Dwarf_Die die = 0; in dwarf_offset_list() local
250 /* Get DIE for offset */ in dwarf_offset_list()
251 res = dwarf_offdie_b(dbg,offset,is_info,&die,error); in dwarf_offset_list()
256 /* Get first child for die */ in dwarf_offset_list()
257 res = dwarf_child(die,&child,error); in dwarf_offset_list()
268 /* Get Global offset for current die */ in dwarf_offset_list()
314 if (cur_die != die) { in dwarf_offset_list()
361 dwarf_attrlist(Dwarf_Die die, in dwarf_attrlist() argument
381 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_attrlist()
382 context = die->di_cu_context; in dwarf_attrlist()
388 die->di_abbrev_list->abl_code, in dwarf_attrlist()
402 info_ptr = die->di_debug_ptr; in dwarf_attrlist()
417 "we run off the end of the DIE while skipping " in dwarf_attrlist()
418 " the DIE tag, seeing the leb length as 0x%u ", in dwarf_attrlist()
462 /* The value is here, not in a DIE. */ in dwarf_attrlist()
492 if (_dwarf_reference_outside_section(die, in dwarf_attrlist()
521 _dwarf_reference_outside_section(die, in dwarf_attrlist()
534 new_attr->ar_cu_context = die->di_cu_context; in dwarf_attrlist()
536 new_attr->ar_die = die; in dwarf_attrlist()
539 /* The value is here, not in a DIE. in dwarf_attrlist()
548 die->di_cu_context->cc_version_stamp, in dwarf_attrlist()
549 die->di_cu_context->cc_address_size, in dwarf_attrlist()
551 die->di_cu_context->cc_length_size, in dwarf_attrlist()
595 This function takes a die, and an attr, and returns
597 the given die in the .debug_info section. The form
610 _dwarf_get_value_ptr(Dwarf_Die die, in _dwarf_get_value_ptr() argument
623 Dwarf_CU_Context context = die->di_cu_context; in _dwarf_get_value_ptr()
637 die->di_abbrev_list->abl_code, in _dwarf_get_value_ptr()
650 info_ptr = die->di_debug_ptr; in _dwarf_get_value_ptr()
665 "we run off the end of the DIE while skipping " in _dwarf_get_value_ptr()
666 " the DIE tag, seeing the leb length as 0x%u ", in _dwarf_get_value_ptr()
705 /* The value is here, not in a DIE. */ in _dwarf_get_value_ptr()
719 die->di_cu_context->cc_version_stamp, in _dwarf_get_value_ptr()
720 die->di_cu_context->cc_address_size, in _dwarf_get_value_ptr()
722 die->di_cu_context->cc_length_size, in _dwarf_get_value_ptr()
747 dwarf_die_text(Dwarf_Die die, in dwarf_die_text() argument
757 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_die_text()
759 res = dwarf_attr(die,attrnum,&attr,&lerr); in dwarf_die_text()
760 dbg = die->di_cu_context->cc_dbg; in dwarf_die_text()
774 dwarf_diename(Dwarf_Die die, in dwarf_diename() argument
778 return dwarf_die_text(die,DW_AT_name,ret_name,error); in dwarf_diename()
782 dwarf_hasattr(Dwarf_Die die, in dwarf_hasattr() argument
791 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_hasattr()
793 res = _dwarf_get_value_ptr(die, attr, &attr_form,&info_ptr, in dwarf_hasattr()
807 dwarf_attr(Dwarf_Die die, in dwarf_attr() argument
818 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_attr()
819 dbg = die->di_cu_context->cc_dbg; in dwarf_attr()
821 res = _dwarf_get_value_ptr(die, attr, &attr_form,&info_ptr, in dwarf_attr()
841 attrib->ar_cu_context = die->di_cu_context; in dwarf_attr()
847 attrib->ar_die = die; in dwarf_attr()
890 /* DW_FORM_addrx has a base value from the CU die: in _dwarf_extract_address_from_debug_addr()
894 which is in the CU die. */ in _dwarf_extract_address_from_debug_addr()
947 /* The DIE here can be any DIE in the relevant CU.
950 dwarf_debug_addr_index_to_addr(Dwarf_Die die, in dwarf_debug_addr_index_to_addr() argument
960 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_debug_addr_index_to_addr()
961 context = die->di_cu_context; in dwarf_debug_addr_index_to_addr()
1003 dwarf_lowpc(Dwarf_Die die, in dwarf_lowpc() argument
1016 Dwarf_CU_Context context = die->di_cu_context; in dwarf_lowpc()
1019 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_lowpc()
1024 res = _dwarf_get_value_ptr(die, DW_AT_low_pc, in dwarf_lowpc()
1067 dwarf_highpc(Dwarf_Die die, in dwarf_highpc() argument
1074 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_highpc()
1075 res = dwarf_highpc_b(die,return_addr,&form,&class,error); in dwarf_highpc()
1081 Dwarf_Debug dbg = die->di_cu_context->cc_dbg; in dwarf_highpc()
1088 /* If the giving 'die' contains the DW_AT_type attribute, it returns
1092 dwarf_dietype_offset(Dwarf_Die die, in dwarf_dietype_offset() argument
1099 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_dietype_offset()
1100 res = dwarf_attr(die,DW_AT_type,&attr,error); in dwarf_dietype_offset()
1103 dwarf_dealloc(die->di_cu_context->cc_dbg,attr,DW_DLA_ATTR); in dwarf_dietype_offset()
1172 /* Goes to the CU die and finds the DW_AT_GNU_addr_base
1173 (or DW_AT_addr_base ) and gets the value from that CU die
1358 dwarf_highpc_b(Dwarf_Die die, in dwarf_highpc_b() argument
1374 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_highpc_b()
1375 dbg = die->di_cu_context->cc_dbg; in dwarf_highpc_b()
1376 address_size = die->di_cu_context->cc_address_size; in dwarf_highpc_b()
1378 res = _dwarf_get_value_ptr(die, DW_AT_high_pc, in dwarf_highpc_b()
1387 die->di_cu_context); in dwarf_highpc_b()
1389 version = die->di_cu_context->cc_version_stamp; in dwarf_highpc_b()
1390 offset_size = die->di_cu_context->cc_length_size; in dwarf_highpc_b()
1400 Dwarf_CU_Context context = die->di_cu_context; in dwarf_highpc_b()
1459 res3 = _dwarf_die_attr_unsigned_constant(die,DW_AT_high_pc, in dwarf_highpc_b()
1464 res3 = _dwarf_get_value_ptr(die, DW_AT_high_pc, in dwarf_highpc_b()
1608 Takes a die, an attribute attr, and checks if attr
1609 occurs in die. Attr is required to be an attribute
1611 in die, the value is returned.
1621 _dwarf_die_attr_unsigned_constant(Dwarf_Die die, in _dwarf_die_attr_unsigned_constant() argument
1633 CHECK_DIE(die, DW_DLV_ERROR); in _dwarf_die_attr_unsigned_constant()
1635 die_info_end = _dwarf_calculate_info_section_end_ptr(die->di_cu_context); in _dwarf_die_attr_unsigned_constant()
1636 dbg = die->di_cu_context->cc_dbg; in _dwarf_die_attr_unsigned_constant()
1637 res = _dwarf_get_value_ptr(die,attr,&attr_form, in _dwarf_die_attr_unsigned_constant()
1689 dwarf_bytesize(Dwarf_Die die, in dwarf_bytesize() argument
1693 int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_byte_size, in dwarf_bytesize()
1701 dwarf_bitsize(Dwarf_Die die, in dwarf_bitsize() argument
1705 int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_bit_size, in dwarf_bitsize()
1713 dwarf_bitoffset(Dwarf_Die die, in dwarf_bitoffset() argument
1717 int res = _dwarf_die_attr_unsigned_constant(die, in dwarf_bitoffset()
1726 dwarf_srclang(Dwarf_Die die, in dwarf_srclang() argument
1730 int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_language, in dwarf_srclang()
1739 dwarf_arrayorder(Dwarf_Die die, in dwarf_arrayorder() argument
1743 int res = _dwarf_die_attr_unsigned_constant(die, DW_AT_ordering, in dwarf_arrayorder()
1752 If the die and the attr are not related the result is
1755 dwarf_attr_offset(Dwarf_Die die, Dwarf_Attribute attr, in dwarf_attr_offset() argument
1763 CHECK_DIE(die, DW_DLV_ERROR); in dwarf_attr_offset()
1764 dbg = die->di_cu_context->cc_dbg; in dwarf_attr_offset()
1765 dataptr = die->di_is_info? dbg->de_debug_info.dss_data: in dwarf_attr_offset()
1774 dwarf_die_abbrev_code(Dwarf_Die die) in dwarf_die_abbrev_code() argument
1776 return die->di_abbrev_code; in dwarf_die_abbrev_code()
1780 the DIE has children, zero if it does not.
1784 dwarf_die_abbrev_children_flag(Dwarf_Die die,Dwarf_Half *ab_has_child) in dwarf_die_abbrev_children_flag() argument
1786 if (die->di_abbrev_list) { in dwarf_die_abbrev_children_flag()
1787 *ab_has_child = die->di_abbrev_list->abl_has_child; in dwarf_die_abbrev_children_flag()
1960 /* Given a DIE, figure out what the CU's DWARF version is
1972 dwarf_get_version_of_die(Dwarf_Die die, in dwarf_get_version_of_die() argument
1977 if (!die) { in dwarf_get_version_of_die()
1980 cucontext = die->di_cu_context; in dwarf_get_version_of_die()