INNER CODE UNIT · Python
data_ptr
SpartanJ/eepp · projects/scripts/debug/eepp_gdb.py:41
data_ptr = (base_addr + align_t).cast(self.type_t.pointer())
else:
void_ptr = self.m_data.address.cast(
gdb.lookup_type("void").pointer().pointer()
).dereference()
storage_ptr = void_ptr.cast(
gdb.lookup_type(f"ankerl::v1_0_3::detail::storage<{self.type_t}>").pointer()
)
size = int(storage_ptr["m_size"])
# C++ logic: offset_to_data = detail::round_up(sizeof(header), alignment_of_t)
# header contains size_t m_size and size_t m_capacity, so sizeof(header) is usually 16.
# Get the exact size of size_t for the current architecture
size_t_type = gdb.lookup_type("size_t")
header_size = size_t_type.sizeof * 2 # header has two size_t fields
# Translate svector's detail::round_up(sizeof(header), alignment_of_t)