Skip to content

find_object_from_internal_pointer is not usable during object tracing #1331

@qinsoon

Description

@qinsoon

The current implementation of find_object_from_internal_pointer finds the VO bit that is set at or before the given internal pointer, gets the object size of the object (where the VO bit is set), then checks if the internal pointer is actually within the object memory.

In order to get the object size, we need to access the object metadata, assuming the object includes valid metadata.

In the case of an object being copied, we could either keep the VO bit for the from object, or clear it. However, if we keep the VO bit, the from object is already dead, and may not have valid metadata for us to get its size. If we clear the VO bit, then we cannot find the base reference if the object is moved. In either case, we cannot use find_object_from_internal_pointer for an internal pointer to an object that has been moved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: Bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions