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)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…