mirror of
https://github.com/python/cpython
synced 2024-10-06 15:49:57 +00:00
gh-115773: Add sizes to debug offset structure (#120112)
This commit is contained in:
parent
8e8d202f55
commit
b180788d4a
|
@ -55,12 +55,14 @@ typedef struct _Py_DebugOffsets {
|
|||
uint64_t version;
|
||||
// Runtime state offset;
|
||||
struct _runtime_state {
|
||||
uint64_t size;
|
||||
uint64_t finalizing;
|
||||
uint64_t interpreters_head;
|
||||
} runtime_state;
|
||||
|
||||
// Interpreter state offset;
|
||||
struct _interpreter_state {
|
||||
uint64_t size;
|
||||
uint64_t next;
|
||||
uint64_t threads_head;
|
||||
uint64_t gc;
|
||||
|
@ -74,6 +76,7 @@ typedef struct _Py_DebugOffsets {
|
|||
|
||||
// Thread state offset;
|
||||
struct _thread_state{
|
||||
uint64_t size;
|
||||
uint64_t prev;
|
||||
uint64_t next;
|
||||
uint64_t interp;
|
||||
|
@ -84,6 +87,7 @@ typedef struct _Py_DebugOffsets {
|
|||
|
||||
// InterpreterFrame offset;
|
||||
struct _interpreter_frame {
|
||||
uint64_t size;
|
||||
uint64_t previous;
|
||||
uint64_t executable;
|
||||
uint64_t instr_ptr;
|
||||
|
@ -93,12 +97,14 @@ typedef struct _Py_DebugOffsets {
|
|||
|
||||
// CFrame offset;
|
||||
struct _cframe {
|
||||
uint64_t size;
|
||||
uint64_t current_frame;
|
||||
uint64_t previous;
|
||||
} cframe;
|
||||
|
||||
// Code object offset;
|
||||
struct _code_object {
|
||||
uint64_t size;
|
||||
uint64_t filename;
|
||||
uint64_t name;
|
||||
uint64_t linetable;
|
||||
|
@ -111,21 +117,25 @@ typedef struct _Py_DebugOffsets {
|
|||
|
||||
// PyObject offset;
|
||||
struct _pyobject {
|
||||
uint64_t size;
|
||||
uint64_t ob_type;
|
||||
} pyobject;
|
||||
|
||||
// PyTypeObject object offset;
|
||||
struct _type_object {
|
||||
uint64_t size;
|
||||
uint64_t tp_name;
|
||||
} type_object;
|
||||
|
||||
// PyTuple object offset;
|
||||
struct _tuple_object {
|
||||
uint64_t size;
|
||||
uint64_t ob_item;
|
||||
} tuple_object;
|
||||
|
||||
// Unicode object offset;
|
||||
struct _unicode_object {
|
||||
uint64_t size;
|
||||
uint64_t state;
|
||||
uint64_t length;
|
||||
size_t asciiobject_size;
|
||||
|
|
|
@ -35,10 +35,12 @@ extern PyTypeObject _PyExc_MemoryError;
|
|||
.cookie = "xdebugpy", \
|
||||
.version = PY_VERSION_HEX, \
|
||||
.runtime_state = { \
|
||||
.size = sizeof(_PyRuntimeState), \
|
||||
.finalizing = offsetof(_PyRuntimeState, _finalizing), \
|
||||
.interpreters_head = offsetof(_PyRuntimeState, interpreters.head), \
|
||||
}, \
|
||||
.interpreter_state = { \
|
||||
.size = sizeof(PyInterpreterState), \
|
||||
.next = offsetof(PyInterpreterState, next), \
|
||||
.threads_head = offsetof(PyInterpreterState, threads.head), \
|
||||
.gc = offsetof(PyInterpreterState, gc), \
|
||||
|
@ -50,6 +52,7 @@ extern PyTypeObject _PyExc_MemoryError;
|
|||
.gil_runtime_state_holder = offsetof(PyInterpreterState, _gil.last_holder), \
|
||||
}, \
|
||||
.thread_state = { \
|
||||
.size = sizeof(PyThreadState), \
|
||||
.prev = offsetof(PyThreadState, prev), \
|
||||
.next = offsetof(PyThreadState, next), \
|
||||
.interp = offsetof(PyThreadState, interp), \
|
||||
|
@ -58,6 +61,7 @@ extern PyTypeObject _PyExc_MemoryError;
|
|||
.native_thread_id = offsetof(PyThreadState, native_thread_id), \
|
||||
}, \
|
||||
.interpreter_frame = { \
|
||||
.size = sizeof(_PyInterpreterFrame), \
|
||||
.previous = offsetof(_PyInterpreterFrame, previous), \
|
||||
.executable = offsetof(_PyInterpreterFrame, f_executable), \
|
||||
.instr_ptr = offsetof(_PyInterpreterFrame, instr_ptr), \
|
||||
|
@ -65,6 +69,7 @@ extern PyTypeObject _PyExc_MemoryError;
|
|||
.owner = offsetof(_PyInterpreterFrame, owner), \
|
||||
}, \
|
||||
.code_object = { \
|
||||
.size = sizeof(PyCodeObject), \
|
||||
.filename = offsetof(PyCodeObject, co_filename), \
|
||||
.name = offsetof(PyCodeObject, co_name), \
|
||||
.linetable = offsetof(PyCodeObject, co_linetable), \
|
||||
|
@ -75,15 +80,19 @@ extern PyTypeObject _PyExc_MemoryError;
|
|||
.co_code_adaptive = offsetof(PyCodeObject, co_code_adaptive), \
|
||||
}, \
|
||||
.pyobject = { \
|
||||
.size = sizeof(PyObject), \
|
||||
.ob_type = offsetof(PyObject, ob_type), \
|
||||
}, \
|
||||
.type_object = { \
|
||||
.size = sizeof(PyTypeObject), \
|
||||
.tp_name = offsetof(PyTypeObject, tp_name), \
|
||||
}, \
|
||||
.tuple_object = { \
|
||||
.size = sizeof(PyTupleObject), \
|
||||
.ob_item = offsetof(PyTupleObject, ob_item), \
|
||||
}, \
|
||||
.unicode_object = { \
|
||||
.size = sizeof(PyUnicodeObject), \
|
||||
.state = offsetof(PyUnicodeObject, _base._base.state), \
|
||||
.length = offsetof(PyUnicodeObject, _base._base.length), \
|
||||
.asciiobject_size = sizeof(PyASCIIObject), \
|
||||
|
|
Loading…
Reference in a new issue