mirror of
https://github.com/python/cpython.git
synced 2026-05-06 12:49:07 -04:00
gh-146462: Add dict introspection debug offsets (#148633)
This commit is contained in:
committed by
GitHub
parent
ffe050ad9b
commit
8c796782fc
@@ -158,8 +158,16 @@ typedef struct _Py_DebugOffsets {
|
||||
uint64_t tp_name;
|
||||
uint64_t tp_repr;
|
||||
uint64_t tp_flags;
|
||||
uint64_t tp_basicsize;
|
||||
uint64_t tp_dictoffset;
|
||||
} type_object;
|
||||
|
||||
// PyHeapTypeObject offset;
|
||||
struct _heap_type_object {
|
||||
uint64_t size;
|
||||
uint64_t ht_cached_keys;
|
||||
} heap_type_object;
|
||||
|
||||
// PyTuple object offset;
|
||||
struct _tuple_object {
|
||||
uint64_t size;
|
||||
@@ -330,6 +338,12 @@ typedef struct _Py_DebugOffsets {
|
||||
.tp_name = offsetof(PyTypeObject, tp_name), \
|
||||
.tp_repr = offsetof(PyTypeObject, tp_repr), \
|
||||
.tp_flags = offsetof(PyTypeObject, tp_flags), \
|
||||
.tp_basicsize = offsetof(PyTypeObject, tp_basicsize), \
|
||||
.tp_dictoffset = offsetof(PyTypeObject, tp_dictoffset), \
|
||||
}, \
|
||||
.heap_type_object = { \
|
||||
.size = sizeof(PyHeapTypeObject), \
|
||||
.ht_cached_keys = offsetof(PyHeapTypeObject, ht_cached_keys), \
|
||||
}, \
|
||||
.tuple_object = { \
|
||||
.size = sizeof(PyTupleObject), \
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Added ``PyTypeObject.tp_basicsize``, ``PyTypeObject.tp_dictoffset``, and
|
||||
``PyHeapTypeObject.ht_cached_keys`` offsets to :c:type:`!_Py_DebugOffsets` to
|
||||
support version-independent read-only dict introspection tools.
|
||||
@@ -31,7 +31,7 @@
|
||||
#define FIELD_SIZE(type, member) sizeof(((type *)0)->member)
|
||||
|
||||
enum {
|
||||
PY_REMOTE_DEBUG_OFFSETS_TOTAL_SIZE = 848,
|
||||
PY_REMOTE_DEBUG_OFFSETS_TOTAL_SIZE = 880,
|
||||
PY_REMOTE_ASYNC_DEBUG_OFFSETS_TOTAL_SIZE = 104,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user