[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