Logging the function pointer table before the PyObject_CallObject call:
- The first call:
.{ .Py_Initialize = fn () callconv(.c) void@7d3c23431a40, .Py_InitializeFromConfig = fn ([*c]const cimport.struct_PyConfig) callconv(.c) cimport.PyStatus@7d3c23770a00, .Py_IncRef = fn ([*c]cimport.struct__object) callconv(.c) void@7d3c233bc5e0, .Py_D
ecRef = fn ([*c]cimport.struct__object) callconv(.c) void@7d3c233bc5f0, .Py_Finalize = fn () callconv(.c) void@7d3c23431ac0, .PyConfig_InitPythonConfig = fn ([*c]cimport.struct_PyConfig) callconv(.c) void@7d3c23763170, .PyConfig_InitIsolatedConfig =
fn ([*c]cimport.struct_PyConfig) callconv(.c) void@7d3c2341bd80, .PyConfig_Clear = fn ([*c]cimport.struct_PyConfig) callconv(.c) void@7d3c23762c40, .PyConfig_SetBytesString = fn ([*c]cimport.struct_PyConfig, [*c][*c]c_int, [*c]const u8) callconv(.c)
cimport.PyStatus@7d3c2341bdd0, .PyStatus_IsExit = fn (cimport.PyStatus) callconv(.c) c_int@7d3c2341bae0, .PyStatus_IsError = fn (cimport.PyStatus) callconv(.c) c_int@7d3c2341bad0, .PyModule_GetDict = fn ([*c]cimport.struct__object) callconv(.c) [*c]c
import.struct__object@7d3c236a3ff0, .PyDict_GetItemString = fn ([*c]cimport.struct__object, [*c]const u8) callconv(.c) [*c]cimport.struct__object@7d3c233b6cd0, .PyObject_CallObject = fn ([*c]cimport.struct__object, [*c]cimport.struct__object) callcon
v(.c) [*c]cimport.struct__object@7d3c2366f250, .PyLong_FromLong = fn (c_long) callconv(.c) [*c]cimport.struct__object@7d3c23525eb0, .PyLong_AsLong = fn ([*c]cimport.struct__object) callconv(.c) c_long@7d3c235267e0, .PyFloat_FromDouble = fn (f64) call
conv(.c) [*c]cimport.struct__object@7d3c23519780, .PyFloat_AsDouble = fn ([*c]cimport.struct__object) callconv(.c) f64@7d3c23519900, .PyUnicode_FromString = fn ([*c]const u8) callconv(.c) [*c]cimport.struct__object@7d3c23575900, .PyUnicode_AsUTF8AndS
ize = fn ([*c]cimport.struct__object, [*c]isize) callconv(.c) [*c]const u8@7d3c2357ac20, .PyTuple_New = fn (isize) callconv(.c) [*c]cimport.struct__object@7d3c23560eb0, .PyTuple_GetItem = fn ([*c]cimport.struct__object, isize) callconv(.c) [*c]cimpor
t.struct__object@7d3c23561170, .PyTuple_SetItem = fn ([*c]cimport.struct__object, isize, [*c]cimport.struct__object) callconv(.c) c_int@7d3c236b59d0, .PyErr_Clear = fn () callconv(.c) void@7d3c237552e0, .PyErr_Occurred = fn () callconv(.c) [*c]cimpor
t.struct__object@7d3c235fab90, .PyRun_SimpleString = fn ([*c]const u8) callconv(.c) c_int@7d3c23435ca0, .PyImport_ImportModule = fn ([*c]const u8) callconv(.c) [*c]cimport.struct__object@7d3c2375ed60 }
- The second call:
.{ .Py_Initialize = fn () callconv(.c) void@ffffffff00022fe6, .Py_InitializeFromConfig = fn ([*c]const cimport.struct_PyConfig) callconv(.c) cimport.PyStatus@7ffc9f13d2e8, .Py_IncRef = fn ([*c]cimport.struct__object) callconv(.c) void@7ffc9f13a5c0, .
Py_DecRef = fn ([*c]cimport.struct__object) callconv(.c) void@7ffc9f13df70, .Py_Finalize = fn () callconv(.c) void@8, .PyConfig_InitPythonConfig = fn ([*c]cimport.struct_PyConfig) callconv(.c) void@7ffc9f13a160, .PyConfig_InitIsolatedConfig = fn ([*c
]cimport.struct_PyConfig) callconv(.c) void@0, .PyConfig_Clear = fn ([*c]cimport.struct_PyConfig) callconv(.c) void@7ffc9f13a5c0, .PyConfig_SetBytesString = fn ([*c]cimport.struct_PyConfig, [*c][*c]c_int, [*c]const u8) callconv(.c) cimport.PyStatus@7
ffc9f13d2e8, .PyStatus_IsExit = fn (cimport.PyStatus) callconv(.c) c_int@7ffc9f13a160, .PyStatus_IsError = fn (cimport.PyStatus) callconv(.c) c_int@8, .PyModule_GetDict = fn ([*c]cimport.struct__object) callconv(.c) [*c]cimport.struct__object@7ffc9f1
3a5c0, .PyDict_GetItemString = fn ([*c]cimport.struct__object, [*c]const u8) callconv(.c) [*c]cimport.struct__object@aaaaaaaaaaaaaaaa, .PyObject_CallObject = fn ([*c]cimport.struct__object, [*c]cimport.struct__object) callconv(.c) [*c]cimport.struct_
_object@22fe600022fe6, .PyLong_FromLong = fn (c_long) callconv(.c) [*c]cimport.struct__object@8, .PyLong_AsLong = fn ([*c]cimport.struct__object) callconv(.c) c_long@aaaaaaaaaaaaaaaa, .PyFloat_FromDouble = fn (f64) callconv(.c) [*c]cimport.struct__ob
ject@aaaaaaaaaaaaaaaa, .PyFloat_AsDouble = fn ([*c]cimport.struct__object) callconv(.c) f64@aaaaaaaaaaaaaaaa, .PyUnicode_FromString = fn ([*c]const u8) callconv(.c) [*c]cimport.struct__object@aaaaaaaaaaaaaaaa, .PyUnicode_AsUTF8AndSize = fn ([*c]cimpo
rt.struct__object, [*c]isize) callconv(.c) [*c]const u8@7ffc9f13a160, .PyTuple_New = fn (isize) callconv(.c) [*c]cimport.struct__object@8, .PyTuple_GetItem = fn ([*c]cimport.struct__object, isize) callconv(.c) [*c]cimport.struct__object@7ffc9f13d2e8,
.PyTuple_SetItem = fn ([*c]cimport.struct__object, isize, [*c]cimport.struct__object) callconv(.c) c_int@8, .PyErr_Clear = fn () callconv(.c) void@aaaaaaaaaaaaaaaa, .PyErr_Occurred = fn () callconv(.c) [*c]cimport.struct__object@aaaaaaaaaaaaaaaa, .P
yRun_SimpleString = fn ([*c]const u8) callconv(.c) c_int@7ffc9f13a160, .PyImport_ImportModule = fn ([*c]const u8) callconv(.c) [*c]cimport.struct__object@8 }