INNER CODE UNIT · Python
to_string
SpartanJ/eepp · projects/scripts/debug/eepp_gdb.py:17
def to_string(self):
if self.is_direct():
size = int(self.m_data[0]) >> 1
return f"EE::SmallVector<{self.type_t}> [Direct] (size={size})"
else:
# For indirect, we have to fetch the pointer from m_data
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"])
cap = int(storage_ptr["m_capacity"])
return f"EE::SmallVector<{self.type_t}> [Indirect] (size={size}, capacity={cap})"
def children(self):
# We need a char pointer type to do proper byte-level pointer math