From 30cf8b7d3d88e87db46844b4fb707d9e4316f31b Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Thu, 29 Sep 2022 11:29:21 -0400 Subject: [PATCH] Support python 3.10 Support variable accessing on python3-3.9 --- python/HelperSDT/_HelperSDT.c | 2 +- tapset/python3.stp | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/python/HelperSDT/_HelperSDT.c b/python/HelperSDT/_HelperSDT.c index 2a6f0ca89..ccb55327e 100644 --- a/python/HelperSDT/_HelperSDT.c +++ b/python/HelperSDT/_HelperSDT.c @@ -90,7 +90,7 @@ struct _dictkeysobject { }; /* This is internal to libpython. */ -#elif PY_MINOR_VERSION == 10 /* python 3.10 */ +#elif PY_MINOR_VERSION == 9 || PY_MINOR_VERSION == 10 /* python 3.9 / 3.10 */ typedef Py_ssize_t (*dict_lookup_func)(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr, Py_ssize_t *hashpos); typedef struct { diff --git a/tapset/python3.stp b/tapset/python3.stp index 0054b05b3..8e02a6abe 100644 --- a/tapset/python3.stp +++ b/tapset/python3.stp @@ -515,12 +515,6 @@ private function Py3Code_nlocals (object) @cast(object, "_stp_Py3FrameObject")->f_frame->f_code->co_nlocals) } -private function Py3Code_varnames (object) -{ - return @choose_defined(@Py3CodeObject(object)->co_varnames, - @cast(object, "_stp_Py3FrameObject")->f_frame->f_code->co_localsplusnames) -} - private function Py3Code_Addr2Line:long(code:long, addrq:long) { /* @@ -559,18 +553,15 @@ private function Py310Code_Addr2Line:long(code:long, addrq:long) * since co_lnotab can have embedded null characters. So, we'll * grab it character by character. * - * TODO Fix for python 3.10 and python 3.11 */ size = Py3Bytes_Size(Py3Code_lnotab (code)) / 2 co_lnotab_sval = @Py3BytesObject(Py3Code_lnotab (code))->ob_sval line = Py3Code_firstlineno(code) - addr = 0 idx = 0 while (idx < 52) { addr = user_long(co_lnotab_sval+idx) idx = idx + 8 } - while (--size >= 0) { addr += user_char(co_lnotab_sval) co_lnotab_sval = co_lnotab_sval + 1 @@ -583,7 +574,6 @@ private function Py310Code_Addr2Line:long(code:long, addrq:long) return line } - # # Systemtap functions based on C functions in frameobject.c. # -- 2.43.5