pygame-community / pygame-ce

🐍🎮 pygame - Community Edition is a FOSS Python library for multimedia applications (like games). Built on top of the excellent SDL library.
https://pyga.me
930 stars 154 forks source link

Segfault in pygame.event.post() (2146) #1128

Closed GalacticEmperor1 closed 1 year ago

GalacticEmperor1 commented 1 year ago

Issue №2146 opened by mgedmin at 2020-10-06 09:33:01

Description

[Pyspacewar's test suite](https://github.com/mgedmin/pyspacewar/blob/ae767d673d1736dce85f0ed2928ab204acebea17/src/pyspacewar/tests/test_ui.py# L2476) segfaults in pg_event_post, in a doctest that does this:

    >>> from pygame.locals import QUIT
    >>> event = pygame.event.Event(QUIT)
    >>> pygame.event.post(event)

It's the only thing that fails; the rest of the test suite is fine.

The test suite works fine with the last pygame release; the segfault only happens with pygame 2.0.0.dev12.

Steps to reproduce

$ git clone https://github.com/mgedmin/pyspacewar
$ cd pyspacewar
$ tox -e py38 --notest
$ .tox/py38/bin/pip install --pre pygame   #  or pip install ~/src/pygame to test git master and see sources in gdb
$ gdb --args .tox/py38/bin/python -m pytest
(gdb) run

Stack trace


Thread 1 "python" received signal SIGSEGV, Segmentation fault.
pg_event_post (self=<optimized out>, args=<optimized out>) at /home/mg/opt/python39/include/python3.9/object.h:630
630     return ((flags & feature) != 0);
(gdb) bt
# 0  pg_event_post (self=<optimized out>, args=<optimized out>) at /home/mg/opt/python39/include/python3.9/object.h:630
# 1  0x00005555557794b1 in cfunction_call (func=func@entry=0x7ffff608e860, args=args@entry=0x7ffff21b1250, kwargs=kwargs@entry=0x0) at Objects/methodobject.c:546
# 2  0x00005555555c7e64 in _PyObject_MakeTpCall (tstate=0x555555925080, callable=0x7ffff608e860, args=<optimized out>, nargs=<optimized out>, keywords=0x0) at Objects/call.c:191
# 3  0x00005555555b8d08 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=9223372036854775809, args=0x7ffff21edd18, callable=0x7ffff608e860, tstate=<optimized out>) at ./Include/cpython/abstract.h:116
# 4  _PyObject_VectorcallTstate (kwnames=0x0, nargsf=9223372036854775809, args=0x7ffff21edd18, callable=0x7ffff608e860, tstate=<optimized out>) at ./Include/cpython/abstract.h:103
# 5  PyObject_Vectorcall (kwnames=0x0, nargsf=9223372036854775809, args=0x7ffff21edd18, callable=0x7ffff608e860) at ./Include/cpython/abstract.h:127
# 6  call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 7  _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 8  0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff21edba0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 9  _PyEval_EvalCode
    (tstate=0x555555925080, _co=_co@entry=0x7ffff21b73a0, globals=globals@entry=0x7ffff4508380, locals=locals@entry=0x7ffff4508380, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=0x0, kwargs=0x0, kwcount=0, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:4299
# 10 0x000055555567a00a in _PyEval_EvalCodeWithName
    (qualname=0x0, name=0x0, closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwstep=2, kwcount=0, kwargs=0x0, kwnames=0x0, argcount=0, args=0x0, locals=0x7ffff4508380, globals=0x7ffff4508380, _co=0x7ffff21b73a0)
    at Python/ceval.c:4331
# 11 PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, locals=0x7ffff4508380, globals=0x7ffff4508380, _co=0x7ffff21b73a0) at Python/ceval.c:4347
# 12 PyEval_EvalCode (co=co@entry=0x7ffff21b73a0, globals=globals@entry=0x7ffff4508380, locals=locals@entry=0x7ffff4508380) at Python/ceval.c:809
# 13 0x00005555557aa6b1 in builtin_exec_impl (module=<optimized out>, locals=0x7ffff4508380, globals=0x7ffff4508380, source=0x7ffff21b73a0) at Python/bltinmodule.c:1035
# 14 builtin_exec (module=<optimized out>, args=0x555555e215f0, nargs=<optimized out>) at Python/clinic/bltinmodule.c.h:396
# 15 0x0000555555779cc1 in cfunction_vectorcall_FASTCALL (func=0x7ffff7b6fe00, args=0x555555e215f0, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/methodobject.c:424
# 16 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555e215f0, callable=0x7ffff7b6fe00, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 17 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555e215f0, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 18 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 19 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 20 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x555555e213d0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 21 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Objects/call.c:329
# 22 0x00005555555b8041 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555e20fb8, callable=0x7ffff4c699d0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 23 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555e20fb8, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 24 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 25 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3476
# 26 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555e20df0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 27 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=5, kwnames=0x0, kwargs=0x555555e1dd40, kwcount=0, kwstep=1, defs=0x7ffff4c83498, defcount=3, kwdefs=0x0, closure=0x0, name=0x7ffff7b64ab0, qualname=0x7ffff4c82850) at Python/ceval.c:4299
# 28 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 29 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555e1dd18, callable=0x7ffff4c69b80, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 30 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555e1dd18, callable=0x7ffff4c69b80) at ./Include/cpython/abstract.h:127
# 31 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 32 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 33 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555e1db70, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 34 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x7ffff7063c28, kwargs=0x7ffff33caca8, kwcount=1, kwstep=1, defs=0x7ffff4c83cd8, defcount=3, kwdefs=0x0, closure=0x0, name=0x7ffff7b64ab0, qualname=0x7ffff4c83bf0) at Python/ceval.c:4299
# 35 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 36 0x0000555555762a08 in _PyObject_VectorcallTstate (kwnames=0x7ffff7063c10, nargsf=2, args=0x7ffff33cac98, callable=0x7ffff4c6c1f0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 37 method_vectorcall (method=<optimized out>, args=0x7ffff33caca0, nargsf=<optimized out>, kwnames=0x7ffff7063c10) at Objects/classobject.c:53
# 38 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff7063c10, nargsf=<optimized out>, args=0x7ffff33caca0, callable=0x7ffff2283200, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 39 PyObject_Vectorcall (kwnames=0x7ffff7063c10, nargsf=<optimized out>, args=0x7ffff33caca0, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 40 call_function (kwnames=0x7ffff7063c10, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 41 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 42 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff33cab20, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 43 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>) at Objects/call.c:329
# 44 0x00005555555b8041 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555de95c0, callable=0x7ffff6fbf280, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
--Type <RET> for more, q to quit, c to continue without paging--
# 45 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555de95c0, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 46 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 47 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3476
# 48 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x555555de9440, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 49 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>) at Objects/call.c:329
# 50 0x00005555555c887c in PyVectorcall_Call (callable=0x7ffff72bfaf0, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:230
# 51 0x00005555555b2e14 in do_call_core (kwdict=0x0, callargs=0x7ffff33b8700, func=0x7ffff72bfaf0, tstate=<optimized out>) at Python/ceval.c:5092
# 52 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3552
# 53 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555ddac20, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 54 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x7ffff749bb38, kwargs=0x7ffff3346748, kwcount=1, kwstep=1, defs=0x7ffff7427e08, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff742e7f0, qualname=0x7ffff742e7f0) at Python/ceval.c:4299
# 55 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 56 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff3346738, callable=0x7ffff742d8b0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 57 PyObject_Vectorcall (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff3346738, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 58 call_function (kwnames=0x7ffff749bb20, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 59 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 60 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff33465b0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 61 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=3, kwnames=0x0, kwargs=0x7ffff2bcb1f0, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7a038f0, qualname=0x7ffff74976f0) at Python/ceval.c:4299
# 62 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 63 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2bcb1d8, callable=0x7ffff7b530d0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 64 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2bcb1d8, callable=0x7ffff7b530d0) at ./Include/cpython/abstract.h:127
# 65 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 66 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 67 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff2bcb040, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 68 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Objects/call.c:329
# 69 0x0000555555762a08 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=4, args=0x7ffff2b54570, callable=0x7ffff7437dc0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 70 method_vectorcall (method=<optimized out>, args=0x7ffff2b54578, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:53
# 71 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2b54578, callable=0x7ffff71db400, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 72 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2b54578, callable=0x7ffff71db400) at ./Include/cpython/abstract.h:127
# 73 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 74 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 75 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff2b543e0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 76 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x7ffff25b4c18, argcount=1, kwnames=0x7ffff6f5bc88, kwargs=0x7ffff25b4c20, kwcount=1, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7ba01f0, qualname=0x7ffff7435120) at Python/ceval.c:4299
# 77 0x00005555555c8e37 in _PyFunction_Vectorcall (func=func@entry=0x7ffff74375e0, stack=stack@entry=0x7ffff25b4c18, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 78 0x00005555555c9699 in _PyObject_FastCallDictTstate (kwargs=0x7ffff240d080, nargsf=1, args=0x7fffffff97a0, callable=0x7ffff74375e0, tstate=0x555555925080) at Objects/call.c:129
# 79 _PyObject_Call_Prepend (tstate=tstate@entry=0x555555925080, callable=callable@entry=0x7ffff74375e0, obj=obj@entry=0x7ffff71d4880, args=args@entry=0x7ffff7ba4040, kwargs=kwargs@entry=0x7ffff240d080)
    at Objects/call.c:488
# 80 0x00005555556276d9 in slot_tp_call (self=0x7ffff71d4880, args=0x7ffff7ba4040, kwds=0x7ffff240d080) at Objects/typeobject.c:6700
# 81 0x00005555555c8ba6 in PyObject_Call () at Objects/call.c:273
# 82 0x00005555555b2e14 in do_call_core (kwdict=0x7ffff240d080, callargs=0x7ffff7ba4040, func=0x7ffff71d4880, tstate=<optimized out>) at Python/ceval.c:5092
# 83 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3552
# 84 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4af2e40, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 85 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=0, kwnames=0x0, kwargs=0x555555c40d18, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x7ffff2b47300, name=0x7ffff7a038f0, qualname=0x7ffff730be70) at Python/ceval.c:4299
# 86 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 87 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555c40d18, callable=0x7ffff60bedc0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 88 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555c40d18, callable=<optimized out>) at ./Include/cpython/abstract.h:127
--Type <RET> for more, q to quit, c to continue without paging--
# 89 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 90 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 91 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555c40b50, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 92 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x7ffff72a5f58, kwargs=0x7ffff4ac6790, kwcount=2, kwstep=1, defs=0x7ffff732cbc8, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff74256f0, qualname=0x7ffff72a7cb0) at Python/ceval.c:4299
# 93 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 94 0x0000555555762a08 in _PyObject_VectorcallTstate (kwnames=0x7ffff72a5f40, nargsf=2, args=0x7ffff4ac6780, callable=0x7ffff72c2430, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 95 method_vectorcall (method=<optimized out>, args=0x7ffff4ac6788, nargsf=<optimized out>, kwnames=0x7ffff72a5f40) at Objects/classobject.c:53
# 96 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff72a5f40, nargsf=<optimized out>, args=0x7ffff4ac6788, callable=0x7ffff25bb3c0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 97 PyObject_Vectorcall (kwnames=0x7ffff72a5f40, nargsf=<optimized out>, args=0x7ffff4ac6788, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 98 call_function (kwnames=0x7ffff72a5f40, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 99 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 100 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4ac65e0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 101 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x0, kwargs=0x7ffff44c33e8, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff72a78f0, qualname=0x7ffff72a78f0) at Python/ceval.c:4299
# 102 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 103 0x00005555555c887c in PyVectorcall_Call (callable=0x7ffff72bfe50, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:230
# 104 0x00005555555b2e14 in do_call_core (kwdict=0x7ffff234c2c0, callargs=0x7ffff44c33c0, func=0x7ffff72bfe50, tstate=<optimized out>) at Python/ceval.c:5092
# 105 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3552
# 106 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4ac6220, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 107 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=3, kwnames=0x0, kwargs=0x7ffff4a95208, kwcount=0, kwstep=1, defs=0x7ffff732cc28, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff72a8930, qualname=0x7ffff72a8930) at Python/ceval.c:4299
# 108 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 109 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a951f0, callable=0x7ffff72bfd30, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 110 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4a951f0, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 111 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 112 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 113 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4a95040, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 114 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=1, kwnames=0x7ffff7314148, kwargs=0x7ffff4cd1390, kwcount=1, kwstep=1, defs=0x7ffff72aaa18, defcount=2, kwdefs=0x0, closure=0x0, name=0x7ffff72a8870, qualname=0x7ffff72a8870) at Python/ceval.c:4299
# 115 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 116 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff7314130, nargsf=<optimized out>, args=0x7ffff4cd1388, callable=0x7ffff72bf940, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 117 PyObject_Vectorcall (kwnames=0x7ffff7314130, nargsf=<optimized out>, args=0x7ffff4cd1388, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 118 call_function (kwnames=0x7ffff7314130, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 119 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 120 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4cd1200, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 121 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Objects/call.c:329
# 122 0x00005555555c887c in PyVectorcall_Call (callable=0x7ffff72bf8b0, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:230
# 123 0x00005555555b2e14 in do_call_core (kwdict=0x0, callargs=0x7ffff44c32c0, func=0x7ffff72bf8b0, tstate=<optimized out>) at Python/ceval.c:5092
# 124 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3552
# 125 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555feaec0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 126 _PyEval_EvalCode
    (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x7ffff749bb38, kwargs=0x7ffff334b9d8, kwcount=1, kwstep=1, defs=0x7ffff7427e08, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff742e7f0, qualname=0x7ffff742e7f0) at Python/ceval.c:4299
# 127 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 128 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff334b9c8, callable=0x7ffff742d8b0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 129 PyObject_Vectorcall (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff334b9c8, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 130 call_function (kwnames=0x7ffff749bb20, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 131 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
--Type <RET> for more, q to quit, c to continue without paging--c
# 132 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff334b840, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 133 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=3, kwnames=0x0, kwargs=0x7ffff2b541f0, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7a038f0, qualname=0x7ffff74976f0) at Python/ceval.c:4299
# 134 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 135 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2b541d8, callable=0x7ffff7b530d0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 136 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2b541d8, callable=0x7ffff7b530d0) at ./Include/cpython/abstract.h:127
# 137 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 138 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 139 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff2b54040, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 140 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Objects/call.c:329
# 141 0x0000555555762a08 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=4, args=0x7ffff2b54910, callable=0x7ffff7437dc0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 142 method_vectorcall (method=<optimized out>, args=0x7ffff2b54918, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:53
# 143 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2b54918, callable=0x7ffff71dbf80, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 144 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff2b54918, callable=0x7ffff71dbf80) at ./Include/cpython/abstract.h:127
# 145 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 146 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 147 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff2b54780, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 148 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x7ffff6f56b18, argcount=1, kwnames=0x7ffff453dd58, kwargs=0x7ffff6f56b20, kwcount=2, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7ba01f0, qualname=0x7ffff7435120) at Python/ceval.c:4299
# 149 0x00005555555c8e37 in _PyFunction_Vectorcall (func=func@entry=0x7ffff74375e0, stack=stack@entry=0x7ffff6f56b18, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 150 0x00005555555c9699 in _PyObject_FastCallDictTstate (kwargs=0x7ffff2de52c0, nargsf=1, args=0x7fffffffb110, callable=0x7ffff74375e0, tstate=0x555555925080) at Objects/call.c:129
# 151 _PyObject_Call_Prepend (tstate=tstate@entry=0x555555925080, callable=callable@entry=0x7ffff74375e0, obj=obj@entry=0x7ffff71d4a60, args=args@entry=0x7ffff7ba4040, kwargs=kwargs@entry=0x7ffff2de52c0) at Objects/call.c:488
# 152 0x00005555556276d9 in slot_tp_call (self=self@entry=0x7ffff71d4a60, args=args@entry=0x7ffff7ba4040, kwds=kwds@entry=0x7ffff2de52c0) at Objects/typeobject.c:6700
# 153 0x00005555555c7e64 in _PyObject_MakeTpCall (tstate=0x555555925080, callable=0x7ffff71d4a60, args=<optimized out>, nargs=<optimized out>, keywords=0x7ffff741d340) at Objects/call.c:191
# 154 0x00005555555b6e59 in _PyObject_VectorcallTstate (kwnames=0x7ffff741d340, nargsf=<optimized out>, args=0x555555c31808, callable=0x7ffff71d4a60, tstate=0x555555925080) at ./Include/cpython/abstract.h:116
# 155 _PyObject_VectorcallTstate (kwnames=0x7ffff741d340, nargsf=<optimized out>, args=0x555555c31808, callable=0x7ffff71d4a60, tstate=0x555555925080) at ./Include/cpython/abstract.h:103
# 156 PyObject_Vectorcall (kwnames=0x7ffff741d340, nargsf=<optimized out>, args=0x555555c31808, callable=0x7ffff71d4a60) at ./Include/cpython/abstract.h:127
# 157 call_function (kwnames=0x7ffff741d340, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 158 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 159 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x555555c31670, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 160 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>) at Objects/call.c:329
# 161 0x00005555555c887c in PyVectorcall_Call (callable=0x7ffff72c43a0, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:230
# 162 0x00005555555b2e14 in do_call_core (kwdict=0x0, callargs=0x7ffff6f5b880, func=0x7ffff72c43a0, tstate=<optimized out>) at Python/ceval.c:5092
# 163 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3552
# 164 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555d69ea0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 165 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x7ffff749bb38, kwargs=0x7ffff447d3a8, kwcount=1, kwstep=1, defs=0x7ffff7427e08, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff742e7f0, qualname=0x7ffff742e7f0) at Python/ceval.c:4299
# 166 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 167 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff447d398, callable=0x7ffff742d8b0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 168 PyObject_Vectorcall (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff447d398, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 169 call_function (kwnames=0x7ffff749bb20, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 170 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 171 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff447d210, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 172 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=3, kwnames=0x0, kwargs=0x7ffff447d1f0, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7a038f0, qualname=0x7ffff74976f0) at Python/ceval.c:4299
# 173 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 174 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff447d1d8, callable=0x7ffff7b530d0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 175 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff447d1d8, callable=0x7ffff7b530d0) at ./Include/cpython/abstract.h:127
# 176 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 177 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 178 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff447d040, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 179 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Objects/call.c:329
# 180 0x0000555555762a08 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=4, args=0x7ffff4562e80, callable=0x7ffff7437dc0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 181 method_vectorcall (method=<optimized out>, args=0x7ffff4562e88, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:53
# 182 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4562e88, callable=0x7ffff71de680, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 183 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4562e88, callable=0x7ffff71de680) at ./Include/cpython/abstract.h:127
# 184 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 185 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 186 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4562cf0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 187 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x7ffff6f56e38, argcount=1, kwnames=0x7ffff6f52d78, kwargs=0x7ffff6f56e40, kwcount=1, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7ba01f0, qualname=0x7ffff7435120) at Python/ceval.c:4299
# 188 0x00005555555c8e37 in _PyFunction_Vectorcall (func=func@entry=0x7ffff74375e0, stack=stack@entry=0x7ffff6f56e38, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 189 0x00005555555c9699 in _PyObject_FastCallDictTstate (kwargs=0x7ffff71d03c0, nargsf=1, args=0x7fffffffbd80, callable=0x7ffff74375e0, tstate=0x555555925080) at Objects/call.c:129
# 190 _PyObject_Call_Prepend (tstate=tstate@entry=0x555555925080, callable=callable@entry=0x7ffff74375e0, obj=obj@entry=0x7ffff71d4b80, args=args@entry=0x7ffff7ba4040, kwargs=kwargs@entry=0x7ffff71d03c0) at Objects/call.c:488
# 191 0x00005555556276d9 in slot_tp_call (self=self@entry=0x7ffff71d4b80, args=args@entry=0x7ffff7ba4040, kwds=kwds@entry=0x7ffff71d03c0) at Objects/typeobject.c:6700
# 192 0x00005555555c7e64 in _PyObject_MakeTpCall (tstate=0x555555925080, callable=0x7ffff71d4b80, args=<optimized out>, nargs=<optimized out>, keywords=0x7ffff747a640) at Objects/call.c:191
# 193 0x00005555555b6e59 in _PyObject_VectorcallTstate (kwnames=0x7ffff747a640, nargsf=<optimized out>, args=0x7ffff74193a0, callable=0x7ffff71d4b80, tstate=0x555555925080) at ./Include/cpython/abstract.h:116
# 194 _PyObject_VectorcallTstate (kwnames=0x7ffff747a640, nargsf=<optimized out>, args=0x7ffff74193a0, callable=0x7ffff71d4b80, tstate=0x555555925080) at ./Include/cpython/abstract.h:103
# 195 PyObject_Vectorcall (kwnames=0x7ffff747a640, nargsf=<optimized out>, args=0x7ffff74193a0, callable=0x7ffff71d4b80) at ./Include/cpython/abstract.h:127
# 196 call_function (kwnames=0x7ffff747a640, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 197 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 198 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff7419220, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 199 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Objects/call.c:329
# 200 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555bb3748, callable=0x7ffff72c4280, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 201 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555bb3748, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 202 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 203 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 204 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x555555bb35a0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 205 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Objects/call.c:329
# 206 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff6f6bd18, callable=0x7ffff72c4160, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 207 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff6f6bd18, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 208 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 209 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 210 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x7ffff6f6bba0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 211 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>) at Objects/call.c:329
# 212 0x00005555555c887c in PyVectorcall_Call (callable=0x7ffff72c41f0, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:230
# 213 0x00005555555b2e14 in do_call_core (kwdict=0x0, callargs=0x7ffff6efd640, func=0x7ffff72c41f0, tstate=<optimized out>) at Python/ceval.c:5092
# 214 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3552
# 215 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x555555bafca0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 216 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x7ffff749bb38, kwargs=0x7ffff6f02cb8, kwcount=1, kwstep=1, defs=0x7ffff7427e08, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff742e7f0, qualname=0x7ffff742e7f0) at Python/ceval.c:4299
# 217 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 218 0x00005555555b6d98 in _PyObject_VectorcallTstate (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff6f02ca8, callable=0x7ffff742d8b0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 219 PyObject_Vectorcall (kwnames=0x7ffff749bb20, nargsf=<optimized out>, args=0x7ffff6f02ca8, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 220 call_function (kwnames=0x7ffff749bb20, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 221 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 222 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff6f02b20, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 223 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=3, kwnames=0x0, kwargs=0x555555b47430, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7a038f0, qualname=0x7ffff74976f0) at Python/ceval.c:4299
# 224 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 225 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x555555b47418, callable=0x7ffff7b530d0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 226 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x555555b47418, callable=0x7ffff7b530d0) at ./Include/cpython/abstract.h:127
# 227 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 228 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 229 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x555555b47280, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 230 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Objects/call.c:329
# 231 0x0000555555762a08 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=4, args=0x7ffff6f57cb0, callable=0x7ffff7437dc0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 232 method_vectorcall (method=<optimized out>, args=0x7ffff6f57cb8, nargsf=<optimized out>, kwnames=0x0) at Objects/classobject.c:53
# 233 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff6f57cb8, callable=0x7ffff71d0b40, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 234 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff6f57cb8, callable=0x7ffff71d0b40) at ./Include/cpython/abstract.h:127
# 235 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 236 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 237 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff6f57b20, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 238 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x7ffff709c958, argcount=1, kwnames=0x7ffff6f9c3b8, kwargs=0x7ffff709c960, kwcount=1, kwstep=1, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x7ffff7ba01f0, qualname=0x7ffff7435120) at Python/ceval.c:4299
# 239 0x00005555555c8e37 in _PyFunction_Vectorcall (func=func@entry=0x7ffff74375e0, stack=stack@entry=0x7ffff709c958, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 240 0x00005555555c9699 in _PyObject_FastCallDictTstate (kwargs=0x7ffff6f8ef40, nargsf=1, args=0x7fffffffccf0, callable=0x7ffff74375e0, tstate=0x555555925080) at Objects/call.c:129
# 241 _PyObject_Call_Prepend (tstate=tstate@entry=0x555555925080, callable=callable@entry=0x7ffff74375e0, obj=obj@entry=0x7ffff71cbc70, args=args@entry=0x7ffff7ba4040, kwargs=kwargs@entry=0x7ffff6f8ef40) at Objects/call.c:488
# 242 0x00005555556276d9 in slot_tp_call (self=self@entry=0x7ffff71cbc70, args=args@entry=0x7ffff7ba4040, kwds=kwds@entry=0x7ffff6f8ef40) at Objects/typeobject.c:6700
# 243 0x00005555555c7e64 in _PyObject_MakeTpCall (tstate=0x555555925080, callable=0x7ffff71cbc70, args=<optimized out>, nargs=<optimized out>, keywords=0x7ffff747aa90) at Objects/call.c:191
# 244 0x00005555555b6e59 in _PyObject_VectorcallTstate (kwnames=0x7ffff747aa90, nargsf=<optimized out>, args=0x555555aa4658, callable=0x7ffff71cbc70, tstate=0x555555925080) at ./Include/cpython/abstract.h:116
# 245 _PyObject_VectorcallTstate (kwnames=0x7ffff747aa90, nargsf=<optimized out>, args=0x555555aa4658, callable=0x7ffff71cbc70, tstate=0x555555925080) at ./Include/cpython/abstract.h:103
# 246 PyObject_Vectorcall (kwnames=0x7ffff747aa90, nargsf=<optimized out>, args=0x555555aa4658, callable=0x7ffff71cbc70) at ./Include/cpython/abstract.h:127
# 247 call_function (kwnames=0x7ffff747aa90, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 248 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3507
# 249 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x555555aa4490, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 250 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Objects/call.c:329
# 251 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x5555559ca4d0, callable=0x7ffff738c3a0, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 252 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x5555559ca4d0, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 253 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 254 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 255 0x00005555555afdab in _PyEval_EvalFrame (throwflag=0, f=0x5555559ca350, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 256 function_code_fastcall (tstate=0x555555925080, co=<optimized out>, args=<optimized out>, nargs=0, globals=<optimized out>) at Objects/call.c:329
# 257 0x00005555555b7f5e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff793c940, callable=0x7ffff738c430, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 258 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff793c940, callable=0x7ffff738c430) at ./Include/cpython/abstract.h:127
# 259 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 260 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3459
# 261 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x7ffff793c7c0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 262 _PyEval_EvalCode (tstate=0x555555925080, _co=_co@entry=0x7ffff7281660, globals=globals@entry=0x7ffff7b0f880, locals=locals@entry=0x7ffff7b0f880, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=0x0, kwargs=0x0, kwcount=0, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:4299
# 263 0x000055555567a00a in _PyEval_EvalCodeWithName (qualname=0x0, name=0x0, closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwstep=2, kwcount=0, kwargs=0x0, kwnames=0x0, argcount=0, args=0x0, locals=0x7ffff7b0f880, globals=0x7ffff7b0f880, _co=0x7ffff7281660) at Python/ceval.c:4331
# 264 PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, locals=0x7ffff7b0f880, globals=0x7ffff7b0f880, _co=0x7ffff7281660) at Python/ceval.c:4347
# 265 PyEval_EvalCode (co=co@entry=0x7ffff7281660, globals=globals@entry=0x7ffff7b0f880, locals=locals@entry=0x7ffff7b0f880) at Python/ceval.c:809
# 266 0x00005555557aa6b1 in builtin_exec_impl (module=<optimized out>, locals=0x7ffff7b0f880, globals=0x7ffff7b0f880, source=0x7ffff7281660) at Python/bltinmodule.c:1035
# 267 builtin_exec (module=<optimized out>, args=0x5555559ea060, nargs=<optimized out>) at Python/clinic/bltinmodule.c.h:396
# 268 0x0000555555779cc1 in cfunction_vectorcall_FASTCALL (func=0x7ffff7b6fe00, args=0x5555559ea060, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/methodobject.c:424
# 269 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x5555559ea060, callable=0x7ffff7b6fe00, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 270 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x5555559ea060, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 271 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 272 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 273 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x5555559e9ea0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 274 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=5, kwnames=0x0, kwargs=0x55555597ff70, kwcount=0, kwstep=1, defs=0x7ffff7a4baa8, defcount=5, kwdefs=0x0, closure=0x0, name=0x7ffff796f6b0, qualname=0x7ffff796f6b0) at Python/ceval.c:4299
# 275 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 276 0x00005555555b6e17 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x55555597ff48, callable=0x7ffff796d550, tstate=0x555555925080) at ./Include/cpython/abstract.h:118
# 277 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x55555597ff48, callable=<optimized out>) at ./Include/cpython/abstract.h:127
# 278 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>) at Python/ceval.c:5044
# 279 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3490
# 280 0x0000555555679cda in _PyEval_EvalFrame (throwflag=0, f=0x55555597fda0, tstate=0x555555925080) at ./Include/internal/pycore_ceval.h:40
# 281 _PyEval_EvalCode (tstate=tstate@entry=0x555555925080, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=2, kwnames=0x0, kwargs=0x7ffff7a4a768, kwcount=0, kwstep=1, defs=0x7ffff7add748, defcount=1, kwdefs=0x0, closure=0x0, name=0x7ffff796c120, qualname=0x7ffff796c120) at Python/ceval.c:4299
# 282 0x00005555555c8e37 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:395
# 283 0x00005555555c887c in PyVectorcall_Call (callable=0x7ffff78ff820, tuple=<optimized out>, kwargs=<optimized out>) at Objects/call.c:230
# 284 0x00005555555ba74a in pymain_run_module (modname=<optimized out>, set_argv0=set_argv0@entry=1) at Modules/main.c:291
# 285 0x00005555555bad42 in pymain_run_python (exitcode=exitcode@entry=0x7fffffffda80) at Modules/main.c:592
# 286 0x00005555555bb6cf in Py_RunMain () at Modules/main.c:677
# 287 pymain_main (args=0x7fffffffda40) at Modules/main.c:707
# 288 Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:731
# 289 0x00007ffff7c5d0b3 in __libc_start_main (main=0x5555555afd40 <main>, argc=3, argv=0x7fffffffdba8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdb98) at ../csu/libc-start.c:308
# 290 0x00005555555ba2de in _start () at ./Include/object.h:430
(gdb) l
625     // PyTypeObject is opaque in the limited C API
626     flags = PyType_GetFlags(type);
627 # else
628     flags = type->tp_flags;
629 # endif
630     return ((flags & feature) != 0);
631 }
632 
633 # define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag)
634 
(gdb) p flags
No symbol "flags" in current context.
(gdb) p feature
No symbol "feature" in current context.
(gdb) disassemble 
Dump of assembler code for function pg_event_post:
   0x00007ffff6025260 <+0>: endbr64 
   0x00007ffff6025264 <+4>: push   %r14
   0x00007ffff6025266 <+6>: mov    %rsi,%rdi
   0x00007ffff6025269 <+9>: lea    0x6530(%rip),%rdx        #  0x7ffff602b7a0 <pgEvent_Type>
   0x00007ffff6025270 <+16>:    lea    0x300a(%rip),%rsi        #  0x7ffff6028281
   0x00007ffff6025277 <+23>:    push   %r13
   0x00007ffff6025279 <+25>:    push   %r12
   0x00007ffff602527b <+27>:    push   %rbp
   0x00007ffff602527c <+28>:    sub    $0x58,%rsp
   0x00007ffff6025280 <+32>:    mov    %fs:0x28,%rax
   0x00007ffff6025289 <+41>:    mov    %rax,0x48(%rsp)
   0x00007ffff602528e <+46>:    xor    %eax,%eax
   0x00007ffff6025290 <+48>:    lea    0x8(%rsp),%rcx
   0x00007ffff6025295 <+53>:    callq  0x7ffff6023820 <_PyArg_ParseTuple_SizeT@plt>
   0x00007ffff602529a <+58>:    test   %eax,%eax
   0x00007ffff602529c <+60>:    je     0x7ffff6025390 <pg_event_post+304>
   0x00007ffff60252a2 <+66>:    mov    $0x20,%edi
   0x00007ffff60252a7 <+71>:    callq  0x7ffff60237c0 <SDL_WasInit@plt>
   0x00007ffff60252ac <+76>:    test   %eax,%eax
   0x00007ffff60252ae <+78>:    je     0x7ffff6025398 <pg_event_post+312>
   0x00007ffff60252b4 <+84>:    mov    0x8(%rsp),%rax
   0x00007ffff60252b9 <+89>:    mov    $0xffffffff,%esi
   0x00007ffff60252be <+94>:    mov    0x10(%rax),%edi
   0x00007ffff60252c1 <+97>:    callq  0x7ffff60236b0 <SDL_EventState@plt>
   0x00007ffff60252c6 <+102>:   test   %al,%al
   0x00007ffff60252c8 <+104>:   je     0x7ffff6025346 <pg_event_post+230>
   0x00007ffff60252ca <+106>:   mov    0x8(%rsp),%r12
   0x00007ffff60252cf <+111>:   mov    0x10(%r12),%eax
   0x00007ffff60252d4 <+116>:   mov    0x18(%r12),%rbp
   0x00007ffff60252d9 <+121>:   lea    -0x300(%rax),%edx
   0x00007ffff60252df <+127>:   cmp    $0x1,%edx
   0x00007ffff60252e2 <+130>:   jbe    0x7ffff60253c0 <pg_event_post+352>
   0x00007ffff60252e8 <+136>:   mov    $0x10,%edi
   0x00007ffff60252ed <+141>:   callq  0x7ffff60239d0 <PyMem_Malloc@plt>
   0x00007ffff60252f2 <+146>:   test   %rax,%rax
   0x00007ffff60252f5 <+149>:   je     0x7ffff6025390 <pg_event_post+304>
   0x00007ffff60252fb <+155>:   mov    0x678e(%rip),%rdx        #  0x7ffff602ba90 <user_event_objects>
   0x00007ffff6025302 <+162>:   addq   $0x1,0x0(%rbp)
   0x00007ffff6025307 <+167>:   mov    %rbp,0x8(%rax)
   0x00007ffff602530b <+171>:   mov    %rdx,(%rax)
   0x00007ffff602530e <+174>:   mov    0x10(%r12),%edx
   0x00007ffff6025313 <+179>:   mov    %rax,0x6776(%rip)        #  0x7ffff602ba90 <user_event_objects>
   0x00007ffff602531a <+186>:   mov    %edx,0x10(%rsp)
   0x00007ffff602531e <+190>:   movl   $0xdeadbeef,0x1c(%rsp)
   0x00007ffff6025326 <+198>:   movq   $0xfffffffffeedf00d,0x20(%rsp)
   0x00007ffff602532f <+207>:   mov    %rax,0x28(%rsp)
   0x00007ffff6025334 <+212>:   lea    0x10(%rsp),%rdi
   0x00007ffff6025339 <+217>:   callq  0x7ffff60239e0 <SDL_PushEvent@plt>
   0x00007ffff602533e <+222>:   test   %eax,%eax
   0x00007ffff6025340 <+224>:   js     0x7ffff6025500 <pg_event_post+672>
   0x00007ffff6025346 <+230>:   mov    0x5c7b(%rip),%r12        #  0x7ffff602afc8
   0x00007ffff602534d <+237>:   addq   $0x1,(%r12)
--Type <RET> for more, q to quit, c to continue without paging--
   0x00007ffff6025352 <+242>:   mov    0x48(%rsp),%rax
   0x00007ffff6025357 <+247>:   xor    %fs:0x28,%rax
   0x00007ffff6025360 <+256>:   jne    0x7ffff60255c9 <pg_event_post+873>
   0x00007ffff6025366 <+262>:   add    $0x58,%rsp
   0x00007ffff602536a <+266>:   mov    %r12,%rax
   0x00007ffff602536d <+269>:   pop    %rbp
   0x00007ffff602536e <+270>:   pop    %r12
   0x00007ffff6025370 <+272>:   pop    %r13
   0x00007ffff6025372 <+274>:   pop    %r14
   0x00007ffff6025374 <+276>:   retq   
   0x00007ffff6025375 <+277>:   mov    0x5c1c(%rip),%rax        #  0x7ffff602af98
   0x00007ffff602537c <+284>:   lea    0x37bd(%rip),%rsi        #  0x7ffff6028b40
   0x00007ffff6025383 <+291>:   mov    (%rax),%rax
   0x00007ffff6025386 <+294>:   mov    (%rax),%rdi
   0x00007ffff6025389 <+297>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff602538e <+302>:   xchg   %ax,%ax
   0x00007ffff6025390 <+304>:   xor    %r12d,%r12d
   0x00007ffff6025393 <+307>:   jmp    0x7ffff6025352 <pg_event_post+242>
   0x00007ffff6025395 <+309>:   nopl   (%rax)
   0x00007ffff6025398 <+312>:   mov    0x5bf9(%rip),%rax        #  0x7ffff602af98
   0x00007ffff602539f <+319>:   lea    0x2e92(%rip),%rsi        #  0x7ffff6028238
   0x00007ffff60253a6 <+326>:   xor    %r12d,%r12d
   0x00007ffff60253a9 <+329>:   mov    (%rax),%rax
   0x00007ffff60253ac <+332>:   mov    (%rax),%rdi
   0x00007ffff60253af <+335>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff60253b4 <+340>:   jmp    0x7ffff6025352 <pg_event_post+242>
   0x00007ffff60253b6 <+342>:   nopw   %cs:0x0(%rax,%rax,1)
   0x00007ffff60253c0 <+352>:   mov    %rbp,%rdi
   0x00007ffff60253c3 <+355>:   lea    0x2eba(%rip),%rsi        #  0x7ffff6028284
   0x00007ffff60253ca <+362>:   callq  0x7ffff60237f0 <PyDict_GetItemString@plt>
   0x00007ffff60253cf <+367>:   lea    0x2eb2(%rip),%rsi        #  0x7ffff6028288
   0x00007ffff60253d6 <+374>:   mov    %rax,%r12
   0x00007ffff60253d9 <+377>:   mov    0x8(%rsp),%rax
   0x00007ffff60253de <+382>:   mov    0x18(%rax),%rdi
   0x00007ffff60253e2 <+386>:   callq  0x7ffff60237f0 <PyDict_GetItemString@plt>
   0x00007ffff60253e7 <+391>:   lea    0x2ea3(%rip),%rsi        #  0x7ffff6028291
   0x00007ffff60253ee <+398>:   mov    %rax,%rbp
   0x00007ffff60253f1 <+401>:   mov    0x8(%rsp),%rax
   0x00007ffff60253f6 <+406>:   mov    0x18(%rax),%rdi
   0x00007ffff60253fa <+410>:   callq  0x7ffff60237f0 <PyDict_GetItemString@plt>
   0x00007ffff60253ff <+415>:   lea    0x2f85(%rip),%rsi        #  0x7ffff602838b
   0x00007ffff6025406 <+422>:   mov    %rax,%r13
   0x00007ffff6025409 <+425>:   mov    0x8(%rsp),%rax
   0x00007ffff602540e <+430>:   mov    0x18(%rax),%rdi
   0x00007ffff6025412 <+434>:   callq  0x7ffff60237f0 <PyDict_GetItemString@plt>
   0x00007ffff6025417 <+439>:   mov    %rax,%r14
   0x00007ffff602541a <+442>:   mov    0x8(%rsp),%rax
   0x00007ffff602541f <+447>:   mov    0x10(%rax),%eax
   0x00007ffff6025422 <+450>:   mov    %eax,0x10(%rsp)
   0x00007ffff6025426 <+454>:   test   %r12,%r12
   0x00007ffff6025429 <+457>:   je     0x7ffff60255ab <pg_event_post+843>
   0x00007ffff602542f <+463>:   mov    0x8(%r12),%rax
   0x00007ffff6025434 <+468>:   testb  $0x1,0xab(%rax)
--Type <RET> for more, q to quit, c to continue without paging--
   0x00007ffff602543b <+475>:   je     0x7ffff6025548 <pg_event_post+744>
   0x00007ffff6025441 <+481>:   mov    %r12,%rdi
   0x00007ffff6025444 <+484>:   callq  0x7ffff60237a0 <PyLong_AsLong@plt>
   0x00007ffff6025449 <+489>:   mov    %eax,0x24(%rsp)
   0x00007ffff602544d <+493>:   test   %rbp,%rbp
   0x00007ffff6025450 <+496>:   je     0x7ffff602546f <pg_event_post+527>
   0x00007ffff6025452 <+498>:   mov    0x8(%rbp),%rax
   0x00007ffff6025456 <+502>:   testb  $0x1,0xab(%rax)
   0x00007ffff602545d <+509>:   je     0x7ffff6025522 <pg_event_post+706>
   0x00007ffff6025463 <+515>:   mov    %rbp,%rdi
   0x00007ffff6025466 <+518>:   callq  0x7ffff60237a0 <PyLong_AsLong@plt>
   0x00007ffff602546b <+523>:   mov    %eax,0x20(%rsp)
   0x00007ffff602546f <+527>:   mov    0x5b52(%rip),%r12        #  0x7ffff602afc8
   0x00007ffff6025476 <+534>:   cmp    %r12,%r13
   0x00007ffff6025479 <+537>:   je     0x7ffff60254c3 <pg_event_post+611>
   0x00007ffff602547b <+539>:   test   %r13,%r13
   0x00007ffff602547e <+542>:   je     0x7ffff60254c3 <pg_event_post+611>
=> 0x00007ffff6025480 <+544>:   mov    0x8(%rbp),%rax
   0x00007ffff6025484 <+548>:   testb  $0x1,0xab(%rax)
   0x00007ffff602548b <+555>:   je     0x7ffff602558a <pg_event_post+810>
   0x00007ffff6025491 <+561>:   mov    %r13,%rdi
   0x00007ffff6025494 <+564>:   callq  0x7ffff60237a0 <PyLong_AsLong@plt>
   0x00007ffff6025499 <+569>:   cmp    $0xffff,%rax
   0x00007ffff602549f <+575>:   jg     0x7ffff6025569 <pg_event_post+777>
   0x00007ffff60254a5 <+581>:   mov    %r13,%rdi
   0x00007ffff60254a8 <+584>:   callq  0x7ffff60237a0 <PyLong_AsLong@plt>
   0x00007ffff60254ad <+589>:   test   %rax,%rax
   0x00007ffff60254b0 <+592>:   js     0x7ffff6025569 <pg_event_post+777>
   0x00007ffff60254b6 <+598>:   mov    %r13,%rdi
   0x00007ffff60254b9 <+601>:   callq  0x7ffff60237a0 <PyLong_AsLong@plt>
   0x00007ffff60254be <+606>:   mov    %ax,0x28(%rsp)
   0x00007ffff60254c3 <+611>:   test   %r14,%r14
   0x00007ffff60254c6 <+614>:   je     0x7ffff6025334 <pg_event_post+212>
   0x00007ffff60254cc <+620>:   cmp    %r12,%r14
   0x00007ffff60254cf <+623>:   je     0x7ffff6025334 <pg_event_post+212>
   0x00007ffff60254d5 <+629>:   mov    0x8(%r14),%rax
   0x00007ffff60254d9 <+633>:   testb  $0x1,0xab(%rax)
   0x00007ffff60254e0 <+640>:   je     0x7ffff6025375 <pg_event_post+277>
   0x00007ffff60254e6 <+646>:   mov    %r14,%rdi
   0x00007ffff60254e9 <+649>:   callq  0x7ffff60237a0 <PyLong_AsLong@plt>
   0x00007ffff60254ee <+654>:   mov    %eax,0x18(%rsp)
   0x00007ffff60254f2 <+658>:   jmpq   0x7ffff6025334 <pg_event_post+212>
   0x00007ffff60254f7 <+663>:   nopw   0x0(%rax,%rax,1)
   0x00007ffff6025500 <+672>:   callq  0x7ffff6023930 <SDL_GetError@plt>
   0x00007ffff6025505 <+677>:   xor    %r12d,%r12d
   0x00007ffff6025508 <+680>:   mov    %rax,%rsi
   0x00007ffff602550b <+683>:   mov    0x5a86(%rip),%rax        #  0x7ffff602af98
   0x00007ffff6025512 <+690>:   mov    (%rax),%rax
   0x00007ffff6025515 <+693>:   mov    (%rax),%rdi
   0x00007ffff6025518 <+696>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff602551d <+701>:   jmpq   0x7ffff6025352 <pg_event_post+242>
   0x00007ffff6025522 <+706>:   mov    0x5a6f(%rip),%rax        #  0x7ffff602af98
   0x00007ffff6025529 <+713>:   lea    0x35c0(%rip),%rsi        #  0x7ffff6028af0
--Type <RET> for more, q to quit, c to continue without paging--
   0x00007ffff6025530 <+720>:   xor    %r12d,%r12d
   0x00007ffff6025533 <+723>:   mov    (%rax),%rax
   0x00007ffff6025536 <+726>:   mov    (%rax),%rdi
   0x00007ffff6025539 <+729>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff602553e <+734>:   jmpq   0x7ffff6025352 <pg_event_post+242>
   0x00007ffff6025543 <+739>:   nopl   0x0(%rax,%rax,1)
   0x00007ffff6025548 <+744>:   mov    0x5a49(%rip),%rax        #  0x7ffff602af98
   0x00007ffff602554f <+751>:   lea    0x3572(%rip),%rsi        #  0x7ffff6028ac8
   0x00007ffff6025556 <+758>:   xor    %r12d,%r12d
   0x00007ffff6025559 <+761>:   mov    (%rax),%rax
   0x00007ffff602555c <+764>:   mov    (%rax),%rdi
   0x00007ffff602555f <+767>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff6025564 <+772>:   jmpq   0x7ffff6025352 <pg_event_post+242>
   0x00007ffff6025569 <+777>:   mov    0x5a28(%rip),%rax        #  0x7ffff602af98
   0x00007ffff6025570 <+784>:   lea    0x2d1e(%rip),%rsi        #  0x7ffff6028295
   0x00007ffff6025577 <+791>:   xor    %r12d,%r12d
   0x00007ffff602557a <+794>:   mov    (%rax),%rax
   0x00007ffff602557d <+797>:   mov    (%rax),%rdi
   0x00007ffff6025580 <+800>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff6025585 <+805>:   jmpq   0x7ffff6025352 <pg_event_post+242>
   0x00007ffff602558a <+810>:   mov    0x5a07(%rip),%rax        #  0x7ffff602af98
   0x00007ffff6025591 <+817>:   lea    0x3580(%rip),%rsi        #  0x7ffff6028b18
   0x00007ffff6025598 <+824>:   xor    %r12d,%r12d
   0x00007ffff602559b <+827>:   mov    (%rax),%rax
   0x00007ffff602559e <+830>:   mov    (%rax),%rdi
   0x00007ffff60255a1 <+833>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff60255a6 <+838>:   jmpq   0x7ffff6025352 <pg_event_post+242>
   0x00007ffff60255ab <+843>:   mov    0x59e6(%rip),%rax        #  0x7ffff602af98
   0x00007ffff60255b2 <+850>:   lea    0x34e7(%rip),%rsi        #  0x7ffff6028aa0
   0x00007ffff60255b9 <+857>:   mov    (%rax),%rax
   0x00007ffff60255bc <+860>:   mov    (%rax),%rdi
   0x00007ffff60255bf <+863>:   callq  0x7ffff6023670 <PyErr_SetString@plt>
   0x00007ffff60255c4 <+868>:   jmpq   0x7ffff6025352 <pg_event_post+242>
   0x00007ffff60255c9 <+873>:   callq  0x7ffff6023660 <__stack_chk_fail@plt>
End of assembler dump.
GalacticEmperor1 commented 1 year ago

(gdb) info registers rax 0xd 13 rbx 0x0 0 rcx 0x7ffff21b5cf0 140737255267568 rdx 0x32 50 rsi 0x7ffff21b5c30 140737255267376 rdi 0x7ffff7ba6ab0 140737349577392 rbp 0x0 0x0 rsp 0x7fffffff8000 0x7fffffff8000 r8 0xe6373b5d0f4739a2 -1857951050392716894 r9 0x8 8 r10 0x7 7 r11 0x12ec0f11f0974608 1363481356911724040 r12 0x5555558d2200 93824995893760 r13 0x7ffff6f65df0 140737336729072 r14 0x0 0 r15 0x0 0 rip 0x7ffff6025480 0x7ffff6025480 <pg_event_post+544> eflags 0x210206 [ PF IF RF ID ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0


#  Comments

# # #  **[robertpfeiffer](https://github.com/robertpfeiffer)* commented at 2020-10-11 08:45:02*

I'll look into this. I'll try the same thing I did for KEYDOWN events, but I might also create a warning when a QUIT or VIDEORESIZE is posted. I don't think SDL2 handles QUIT directly (and VIDEORESIZE is no longer a thing, so no harm there)
<hr>

# # #  **[mgedmin](https://github.com/mgedmin)* commented at 2020-10-11 09:01:21*

This code was part of the test suite, for testing how my game's main loop handles QUIT events.  I wouldn't want SDL2 to handle it for me and, e.g., terminate the test runner.

I suppose I could monkey-patch pygame.event.get(), if this kind of thing is problematic with the real event subsystem.
<hr>

# # #  **[robertpfeiffer](https://github.com/robertpfeiffer)* commented at 2020-10-21 07:43:26*

Just so we are clear: Posting some events with SDL2 will cause these events to be handled by SDL2 itself. Posting QUIT events should be fine according to https://wiki.libsdl.org/SDL_EventType# SDL_QUIT https://wiki.libsdl.org/SDL_QuitRequested
<hr>

# # #  **[ankith26](https://github.com/ankith26)* commented at 2020-10-22 13:27:27*

I’m not able to reproduce this issue on my raspberry pi (both with py3.7 and py3.9). 
Could you try upgrading to latest pygame dev release and try
<hr>

# # #  **[mgedmin](https://github.com/mgedmin)* commented at 2020-10-22 15:58:06*

I can reproduce the segfault with current git master (a0f7cdc8ca3ac6fc9986747a9dcc14d3c828be14) on Python 3.8, on Ubuntu 20.04, on x86-64, using SDL2.

(BTW `pip install -e ~/src/pygame` did not actually work for me -- No module named 'pygame.locals' -- but `pip install ~/src/pygame` worked fine, err, other than the segfault.)
<hr>

# # #  **[illume](https://github.com/illume)* commented at 2020-10-22 18:43:26*

I got this related pygame.event.post crash:
```python
Fatal Python error: (pygame parachute) Segmentation Fault
Python runtime state: initialized

Current thread 0x0000000119b44dc0 (most recent call first):
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./input.py", line 139 in postactive
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./gameplay.py", line 416 in playerstart_end
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./gameplay.py", line 83 in changestate
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./gameplay.py", line 407 in playerstart_tick
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./gameplay.py", line 150 in run
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./main.py", line 101 in gamemain
  File "/Users/rene/dev/pygame/solarwolf/solarwolf/./main.py", line 18 in main
  File "solarwolf/cli.py", line 60 in main
  File "solarwolf/cli.py", line 204 in <module>
Abort trap: 6

In the game solarwolf on Mac with 2.0.0.dev19

def postactive():
    keystate = pygame.key.get_pressed()
    for key in range (len(keystate)):
        if keystate[key]:
            # I don't know how to get unicode
            pygame.event.post(pygame.event.Event(KEYDOWN, {'key': key, 'mod': pygame.key.get_mods()}))

*ankith26 commented at 2020-10-23 05:55:36*

I have put # 2235 to hopefully fix things.


*ankith26 commented at 2020-10-24 10:57:00*

2244 has fixed illumes issue.

Now need to do more investigation the QUIT issue though.


*ankith26 commented at 2020-10-24 13:11:20*

@mgedmin my new PR # 2244 probably fixes your issue, so you can give it a try, the PR was intended to fix issues with KEYDOWN/KEYUP, but can hopefully fix your issue to. While you are at it, could you please paste the results of running the unittests of event module like,

python3 -m pygame.tests.event_test


*mgedmin commented at 2020-10-25 08:00:13*

Yes, # 2244 fixes my segfault.

python3 -m pygame.tests.event_test hangs for me with no output after printing

pygame 2.0.0.dev23 (SDL 2.0.12, python 3.8.6)
Hello from the pygame community. https://www.pygame.org/contribute.html

I have waited 5 minutes before hitting ^C (futilely) and ^\ (which made it dump core and quit at last).


*illume commented at 2020-10-25 10:21:06*

It's great the segfault is fixed. Thanks @ankith26

Going to leave this issue open to look at the unit test hangs.


*ankith26 commented at 2020-10-25 10:29:37*

Glad the segfault is sorted, but I half expected the unittests to somehow fail, that’s why I asked the results

Can you try this bit of code, to see if it segfaults for you

import pygame
event = pygame.event.Event(pygame.VIDEOEXPOSE)
pygame.event.post(event)

Oh and by the way, the reason I’m asking you to test all this is that I am not able to reproduce your issue, so I need your help in debugging this


*mgedmin commented at 2020-10-26 17:40:29*

No segfault, just an error:

$ python -c 'import pygame
event = pygame.event.Event(pygame.VIDEOEXPOSE)
pygame.event.post(event)
'
pygame 2.0.0.dev23 (SDL 2.0.12, python 3.8.6)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
  File "<string>", line 3, in <module>
pygame.error: video system not initialized

*mgedmin commented at 2020-10-26 17:41:56*

$ python -c 'import pygame
pygame.init()                                              
event = pygame.event.Event(pygame.VIDEOEXPOSE)
pygame.event.post(event)
'
pygame 2.0.0.dev23 (SDL 2.0.12, python 3.8.6)
Hello from the pygame community. https://www.pygame.org/contribute.html

doesn't crash, but freezes, ignores ^C, dies on ^.


*mgedmin commented at 2020-10-26 17:42:27*

TBF python -c 'import pygame; pygame.init()' does the same.


*mgedmin commented at 2020-10-26 18:04:05*

The hang is probably a local issue, feel free to ignore. gdb shows it's waiting inside libxcb.so.1, inside libGLX_mesa.so.0, inside libSDL2-2.0.so.0. Some other X11 apps (firefox) do the same. Other apps (e.g. those using pygame 1.9.6, which is linked against libSDL1.2.so.0) work fine. I suspect the socat I have running (socat abstract-listen:/tmp/.X11-unix/X0,reuseaddr,fork unix:/tmp/.X11-unix/X0) to forward the X11 abstract socket to the real socket has something to do with this situation.

I'll do the try again in a few days once Ubuntu people push through the mutter SRU that resurrects the X11 abstract socket and allows snap-ified applications like Chromium to work again without the socat hack.


*illume commented at 2020-10-27 08:19:32*

Thanks for the investigation and reports @mgedmin.

I'll take the critical label (reserved for pygame 2 blocking issues) off this one now, because it sounds like it's something quite specific to your setup. There's an event.post PR happening at https://github.com/pygame/pygame/pull/2250


*illume commented at 2020-12-17 17:36:14*

The PR by @ankith26 fixes this https://github.com/pygame/pygame/pull/2398 , so closing this. Thanks all!