[Bug gdb/33420] ./gdb/objfiles.h:636: internal-error: section_offset: Assertion `this->section_offsets.size() > idx' failed.
icegood1980 at gmail dot com
sourceware-bugzilla@sourceware.org
Sat Oct 25 13:57:46 GMT 2025
https://sourceware.org/bugzilla/show_bug.cgi?id=33420
--- Comment #8 from icegood <icegood1980 at gmail dot com> ---
debugging under 16,3: when assert fails
gef➤ p *this
$16 = {
<intrusive_list_node<objfile>> = {
next = 0x7ff0c905a050,
prev = 0x7ff0c913c050
},
members of objfile:
original_name = 0x7ff0c90c3fd0 "/lib/ld-musl-x86_64.so.1",
addr_low = 0x0,
flags = {
m_enum_value = OBJF_SHARED
},
m_pspace = 0x7ff0c9362580,
compunit_symtabs = 0x0,
obfd = {
m_obj = 0x7ff0c90bd290
},
per_bfd = 0x7ff0c90a0080,
per_bfd_storage = {
_M_t = {
<std::__uniq_ptr_impl<objfile_per_bfd_storage,
std::default_delete<objfile_per_bfd_storage> >> = {
_M_t = {
<std::_Tuple_impl<0, objfile_per_bfd_storage*,
std::default_delete<objfile_per_bfd_storage> >> = {
<std::_Tuple_impl<1, std::default_delete<objfile_per_bfd_storage>
>> = {
<std::_Head_base<1, std::default_delete<objfile_per_bfd_storage>,
true>> = {
_M_head_impl = {<No data fields>}
}, <No data fields>},
<std::_Head_base<0, objfile_per_bfd_storage*, false>> = {
_M_head_impl = 0x0
}, <No data fields>}, <No data fields>}
}, <No data fields>}
},
mtime = 0x67fbe888,
objfile_obstack = {
<obstack> = {
chunk_size = 0xfe0,
chunk = 0x7ff0c90c3fc0,
object_base = 0x7ff0c90c4050 "",
next_free = 0x7ff0c90c4050 "",
chunk_limit = 0x7ff0c90c4fa0 "",
temp = {
i = 0x0,
p = 0x0
},
alignment_mask = 0xf,
chunkfun = {
plain = 0x488aec <xmalloc(size_t)>,
extra = 0x488aec <xmalloc(size_t)>
},
freefun = {
plain = 0x417e74 <xfree<void>(void*)>,
extra = 0x417e74 <xfree<void>(void*)>
},
extra_arg = 0x0,
use_extra_arg = 0x0,
maybe_empty_object = 0x0,
alloc_failed = 0x0
}, <No data fields>},
sf = 0xd175a0 <elf_sym_fns>,
qf = {
<std::_Fwd_list_base<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> >,
std::allocator<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >> = {
_M_impl = {
<std::allocator<std::_Fwd_list_node<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >> = {
<std::__new_allocator<std::_Fwd_list_node<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >> = {<No data fields>}, <No
data fields>},
members of std::_Fwd_list_base<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> >,
std::allocator<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >::_Fwd_list_impl:
_M_head = {
_M_next = 0x0
}
}
}, <No data fields>},
registry_fields = {
m_fields = {
<std::_Vector_base<void*, std::allocator<void*> >> = {
_M_impl = {
<std::allocator<void*>> = {
<std::__new_allocator<void*>> = {<No data fields>}, <No data
fields>},
<std::_Vector_base<void*, std::allocator<void*> >::_Vector_impl_data>
= {
_M_start = 0x7ff0c9325cd0,
_M_finish = 0x7ff0c9325d40,
_M_end_of_storage = 0x7ff0c9325d40
}, <No data fields>}
}, <No data fields>}
},
section_offsets = {
<std::_Vector_base<unsigned long, std::allocator<unsigned long> >> = {
_M_impl = {
<std::allocator<unsigned long>> = {
<std::__new_allocator<unsigned long>> = {<No data fields>}, <No data
fields>},
<std::_Vector_base<unsigned long, std::allocator<unsigned long>
>::_Vector_impl_data> = {
_M_start = 0x7ff0c9329cc0,
_M_finish = 0x7ff0c9329ce0,
_M_end_of_storage = 0x7ff0c9329ce0
}, <No data fields>}
}, <No data fields>},
sect_index_text = 0x0,
sect_index_data = 0x0,
sect_index_bss = 0x0,
sect_index_rodata = 0x0,
sections_start = 0x7ff0c90c3ff0,
sections_end = 0x7ff0c90c4050,
separate_debug_objfile = 0x0,
separate_debug_objfile_backlink = 0x0,
separate_debug_objfile_link = 0x0,
stats = {
n_syms = 0x0,
n_stabs = 0x0,
n_types = 0x0,
sz_strtab = 0x0
},
template_symbols = 0x0,
static_links = {
<ankerl::unordered_dense::v4_4_0::detail::base_table_type_map<dynamic_prop
const*>> = {<No data fields>},
members of ankerl::unordered_dense::v4_4_0::detail::table<block const*,
dynamic_prop const*, ankerl::unordered_dense::v4_4_0::hash<block const*, void>,
std::equal_to<block const*>, std::allocator<std::pair<block const*,
dynamic_prop const*> >, ankerl::unordered_dense::v4_4_0::bucket_type::standard,
false>:
m_values = {
<std::_Vector_base<std::pair<block const*, dynamic_prop const*>,
std::allocator<std::pair<block const*, dynamic_prop const*> > >> = {
_M_impl = {
<std::allocator<std::pair<block const*, dynamic_prop const*> >> = {
<std::__new_allocator<std::pair<block const*, dynamic_prop const*>
>> = {<No data fields>}, <No data fields>},
<std::_Vector_base<std::pair<block const*, dynamic_prop const*>,
std::allocator<std::pair<block const*, dynamic_prop const*> >
>::_Vector_impl_data> = {
_M_start = 0x0,
_M_finish = 0x0,
_M_end_of_storage = 0x0
}, <No data fields>}
}, <No data fields>},
m_buckets = 0x7ff0c9329ba0,
m_num_buckets = 0x4,
m_max_bucket_capacity = 0x3,
m_max_load_factor = 0.800000012,
m_hash = {<No data fields>},
m_equal = {
<std::binary_function<block const*, block const*, bool>> = {<No data
fields>}, <No data fields>},
m_shifts = 0x3e
},
jiter_data = {
_M_t = {
<std::__uniq_ptr_impl<jiter_objfile_data,
std::default_delete<jiter_objfile_data> >> = {
_M_t = {
<std::_Tuple_impl<0, jiter_objfile_data*,
std::default_delete<jiter_objfile_data> >> = {
<std::_Tuple_impl<1, std::default_delete<jiter_objfile_data> >> = {
<std::_Head_base<1, std::default_delete<jiter_objfile_data>,
true>> = {
_M_head_impl = {<No data fields>}
}, <No data fields>},
<std::_Head_base<0, jiter_objfile_data*, false>> = {
_M_head_impl = 0x0
}, <No data fields>}, <No data fields>}
}, <No data fields>}
},
jited_data = {
_M_t = {
<std::__uniq_ptr_impl<jited_objfile_data,
std::default_delete<jited_objfile_data> >> = {
_M_t = {
<std::_Tuple_impl<0, jited_objfile_data*,
std::default_delete<jited_objfile_data> >> = {
<std::_Tuple_impl<1, std::default_delete<jited_objfile_data> >> = {
<std::_Head_base<1, std::default_delete<jited_objfile_data>,
true>> = {
_M_head_impl = {<No data fields>}
}, <No data fields>},
<std::_Head_base<0, jited_objfile_data*, false>> = {
_M_head_impl = 0x0
}, <No data fields>}, <No data fields>}
}, <No data fields>}
},
skip_jit_symbol_lookup = 0x1,
object_format_has_copy_relocs = 0x1
}
gef➤
$17 = {
<intrusive_list_node<objfile>> = {
next = 0x7ff0c905a050,
prev = 0x7ff0c913c050
},
members of objfile:
original_name = 0x7ff0c90c3fd0 "/lib/ld-musl-x86_64.so.1",
addr_low = 0x0,
flags = {
m_enum_value = OBJF_SHARED
},
m_pspace = 0x7ff0c9362580,
compunit_symtabs = 0x0,
obfd = {
m_obj = 0x7ff0c90bd290
},
per_bfd = 0x7ff0c90a0080,
per_bfd_storage = {
_M_t = {
<std::__uniq_ptr_impl<objfile_per_bfd_storage,
std::default_delete<objfile_per_bfd_storage> >> = {
_M_t = {
<std::_Tuple_impl<0, objfile_per_bfd_storage*,
std::default_delete<objfile_per_bfd_storage> >> = {
<std::_Tuple_impl<1, std::default_delete<objfile_per_bfd_storage>
>> = {
<std::_Head_base<1, std::default_delete<objfile_per_bfd_storage>,
true>> = {
_M_head_impl = {<No data fields>}
}, <No data fields>},
<std::_Head_base<0, objfile_per_bfd_storage*, false>> = {
_M_head_impl = 0x0
}, <No data fields>}, <No data fields>}
}, <No data fields>}
},
mtime = 0x67fbe888,
objfile_obstack = {
<obstack> = {
chunk_size = 0xfe0,
chunk = 0x7ff0c90c3fc0,
object_base = 0x7ff0c90c4050 "",
next_free = 0x7ff0c90c4050 "",
chunk_limit = 0x7ff0c90c4fa0 "",
temp = {
i = 0x0,
p = 0x0
},
alignment_mask = 0xf,
chunkfun = {
plain = 0x488aec <xmalloc(size_t)>,
extra = 0x488aec <xmalloc(size_t)>
},
freefun = {
plain = 0x417e74 <xfree<void>(void*)>,
extra = 0x417e74 <xfree<void>(void*)>
},
extra_arg = 0x0,
use_extra_arg = 0x0,
maybe_empty_object = 0x0,
alloc_failed = 0x0
}, <No data fields>},
sf = 0xd175a0 <elf_sym_fns>,
qf = {
<std::_Fwd_list_base<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> >,
std::allocator<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >> = {
_M_impl = {
<std::allocator<std::_Fwd_list_node<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >> = {
<std::__new_allocator<std::_Fwd_list_node<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >> = {<No data fields>}, <No
data fields>},
members of std::_Fwd_list_base<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> >,
std::allocator<std::unique_ptr<quick_symbol_functions,
std::default_delete<quick_symbol_functions> > > >::_Fwd_list_impl:
_M_head = {
_M_next = 0x0
}
}
}, <No data fields>},
registry_fields = {
m_fields = {
<std::_Vector_base<void*, std::allocator<void*> >> = {
_M_impl = {
<std::allocator<void*>> = {
<std::__new_allocator<void*>> = {<No data fields>}, <No data
fields>},
<std::_Vector_base<void*, std::allocator<void*> >::_Vector_impl_data>
= {
_M_start = 0x7ff0c9325cd0,
_M_finish = 0x7ff0c9325d40,
_M_end_of_storage = 0x7ff0c9325d40
}, <No data fields>}
}, <No data fields>}
},
section_offsets = {
<std::_Vector_base<unsigned long, std::allocator<unsigned long> >> = {
_M_impl = {
<std::allocator<unsigned long>> = {
<std::__new_allocator<unsigned long>> = {<No data fields>}, <No data
fields>},
<std::_Vector_base<unsigned long, std::allocator<unsigned long>
>::_Vector_impl_data> = {
_M_start = 0x7ff0c9329cc0,
_M_finish = 0x7ff0c9329ce0,
_M_end_of_storage = 0x7ff0c9329ce0
}, <No data fields>}
}, <No data fields>},
sect_index_text = 0x0,
sect_index_data = 0x0,
sect_index_bss = 0x0,
sect_index_rodata = 0x0,
sections_start = 0x7ff0c90c3ff0,
sections_end = 0x7ff0c90c4050,
separate_debug_objfile = 0x0,
separate_debug_objfile_backlink = 0x0,
separate_debug_objfile_link = 0x0,
stats = {
n_syms = 0x0,
n_stabs = 0x0,
n_types = 0x0,
sz_strtab = 0x0
},
template_symbols = 0x0,
static_links = {
<ankerl::unordered_dense::v4_4_0::detail::base_table_type_map<dynamic_prop
const*>> = {<No data fields>},
members of ankerl::unordered_dense::v4_4_0::detail::table<block const*,
dynamic_prop const*, ankerl::unordered_dense::v4_4_0::hash<block const*, void>,
std::equal_to<block const*>, std::allocator<std::pair<block const*,
dynamic_prop const*> >, ankerl::unordered_dense::v4_4_0::bucket_type::standard,
false>:
m_values = {
<std::_Vector_base<std::pair<block const*, dynamic_prop const*>,
std::allocator<std::pair<block const*, dynamic_prop const*> > >> = {
_M_impl = {
<std::allocator<std::pair<block const*, dynamic_prop const*> >> = {
<std::__new_allocator<std::pair<block const*, dynamic_prop const*>
>> = {<No data fields>}, <No data fields>},
<std::_Vector_base<std::pair<block const*, dynamic_prop const*>,
std::allocator<std::pair<block const*, dynamic_prop const*> >
>::_Vector_impl_data> = {
_M_start = 0x0,
_M_finish = 0x0,
_M_end_of_storage = 0x0
}, <No data fields>}
}, <No data fields>},
m_buckets = 0x7ff0c9329ba0,
m_num_buckets = 0x4,
m_max_bucket_capacity = 0x3,
m_max_load_factor = 0.800000012,
m_hash = {<No data fields>},
m_equal = {
<std::binary_function<block const*, block const*, bool>> = {<No data
fields>}, <No data fields>},
m_shifts = 0x3e
},
jiter_data = {
_M_t = {
<std::__uniq_ptr_impl<jiter_objfile_data,
std::default_delete<jiter_objfile_data> >> = {
_M_t = {
<std::_Tuple_impl<0, jiter_objfile_data*,
std::default_delete<jiter_objfile_data> >> = {
<std::_Tuple_impl<1, std::default_delete<jiter_objfile_data> >> = {
<std::_Head_base<1, std::default_delete<jiter_objfile_data>,
true>> = {
_M_head_impl = {<No data fields>}
}, <No data fields>},
<std::_Head_base<0, jiter_objfile_data*, false>> = {
_M_head_impl = 0x0
}, <No data fields>}, <No data fields>}
}, <No data fields>}
},
jited_data = {
_M_t = {
<std::__uniq_ptr_impl<jited_objfile_data,
std::default_delete<jited_objfile_data> >> = {
_M_t = {
<std::_Tuple_impl<0, jited_objfile_data*,
std::default_delete<jited_objfile_data> >> = {
<std::_Tuple_impl<1, std::default_delete<jited_objfile_data> >> = {
<std::_Head_base<1, std::default_delete<jited_objfile_data>,
true>> = {
_M_head_impl = {<No data fields>}
}, <No data fields>},
<std::_Head_base<0, jited_objfile_data*, false>> = {
_M_head_impl = 0x0
}, <No data fields>}, <No data fields>}
}, <No data fields>}
},
skip_jit_symbol_lookup = 0x1,
object_format_has_copy_relocs = 0x1
}
gef➤ i loc
__func__ = "section_offset"
idx = 0x4
gef➤ pvector this->section_offsets
elem[0]: $18 = 0x0
elem[1]: $19 = 0x0
elem[2]: $20 = 0x0
elem[3]: $21 = 0x0
Vector size = 4
Vector capacity = 4
Element type = std::_Vector_base<unsigned long, std::allocator<unsigned long>
>::pointer
seems 'so' object imitialized only by default section offsets that are all '0'
Not understand why it is not defined by proper offsets instead
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Gdb-prs
mailing list