Skip to content

Add a collection of offsets to facilitate the work of out-of-process debuggers #106597

Closed
@pablogsal

Description

@pablogsal

Some of the relevant fields in the interpreter state and the frame state in 3.12 are very challenging to fetch from out-of-process tools because they are in offsets that depend on compilation or platform variables that are different in different platforms. Not only that but they require the tools to copy a huge amount of intermediate structures making the whole thing very verbose.

To allow out-of-process tools to get these offsets without having to copy the headers (which also doesn't really work as some of these fields may depend on compilation flags and other parameters), add a debugging struct to the runtime state (which is the entry point many of these tools need anyway) that contain a list of the offsets that are relevant for out-of-process tools.

This list will not be backward compatible between minor versions but is expected to reflect the relevant fields for all the life of a minor version.

We can add more fields to the struct in the future at our leisure.

See #106140 and #100987 and #105271 for more information.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions