Bug 1926283
| Summary: | Build python-debug with -O0 to avoid test_gdb failures | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Charalampos Stratakis <cstratak> |
| Component: | python39-3.9-module | Assignee: | Charalampos Stratakis <cstratak> |
| Status: | CLOSED ERRATA | QA Contact: | Lukáš Zachar <lzachar> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | low | ||
| Version: | 8.4 | CC: | cstratak, dmalcolm, pviktori, thrnciar, torsava, vstinner |
| Target Milestone: | rc | Keywords: | FutureFeature, Reopened, Triaged |
| Target Release: | 8.0 | Flags: | pm-rhel:
mirror+
|
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | python39-3.9.1-5.module+el8.4.0+9914+8b10a0a4 | Doc Type: | Enhancement |
| Doc Text: | Story Points: | --- | |
| Clone Of: | 1818857 | Environment: | |
| Last Closed: | 2021-05-18 16:07:12 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1818857 | ||
| Bug Blocks: | |||
|
Comment 1
Charalampos Stratakis
2021-02-10 16:04:18 UTC
I tested the package with gdb and it works as expected! gdb doesn't display any "optimized out" function parameter or variable: great! gdb is usable on python3-debug package!
I tested python39-3.9.1-5.module+el8.4.0+9921+36eefe8e on RHEL8. Installed "python39-debug python39-debuginfo python39-debugsource" packages.
Debug Python:
----------------------
$ gdb -args python3.9d -m test test_os
Reading symbols from python3.9d...Reading symbols from /usr/lib/debug/usr/bin/python3.9d-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64.debug...done.
(gdb) run
(...)
0:00:00 load avg: 0.27 [1/1] test_os
^C
Program received signal SIGINT, Interrupt.
(...)
(gdb) where
#0 0x00007ffff634ab7e in lsetxattr () from /lib64/libc.so.6
#1 0x00007ffff74f5e19 in os_setxattr_impl (module=<module at remote 0x7ffff7ee0b90>, path=0x7ffffffdba30, attribute=0x7ffffffdb9e0,
value=0x7ffffffdba80, flags=0, follow_symlinks=0)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Modules/posixmodule.c:12637
#2 0x00007ffff7502869 in os_setxattr (module=<module at remote 0x7ffff7ee0b90>, args=0x7ffffffdbad0, nargs=3, kwnames=('follow_symlinks',))
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Modules/clinic/posixmodule.c.h:7813
#3 0x00007ffff734d5d0 in cfunction_vectorcall_FASTCALL_KEYWORDS (func=<built-in method setxattr of module object at remote 0x7ffff7ee0b90>,
args=0x7fffef35d948, nargsf=9223372036854775811, kwnames=('follow_symlinks',))
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/methodobject.c:442
#4 0x00007ffff72e8850 in PyVectorcall_Call (callable=<built-in method setxattr of module object at remote 0x7ffff7ee0b90>,
tuple=('@test_7745_tmp\xe6', 'user.test3', b'x'), kwargs={'follow_symlinks': False})
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/call.c:242
#5 0x00007ffff72e8986 in _PyObject_Call (tstate=0x55555575b5e0, callable=<built-in method setxattr of module object at remote 0x7ffff7ee0b90>,
args=('@test_7745_tmp\xe6', 'user.test3', b'x'), kwargs={'follow_symlinks': False})
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/call.c:265
#6 0x00007ffff72e8a70 in PyObject_Call (callable=<built-in method setxattr of module object at remote 0x7ffff7ee0b90>,
args=('@test_7745_tmp\xe6', 'user.test3', b'x'), kwargs={'follow_symlinks': False})
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/call.c:292
#7 0x00007ffff7458a45 in do_call_core (tstate=0x55555575b5e0, func=<built-in method setxattr of module object at remote 0x7ffff7ee0b90>,
callargs=('@test_7745_tmp\xe6', 'user.test3', b'x'), kwdict={'follow_symlinks': False})
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:5092
#8 0x00007ffff745356e in _PyEval_EvalFrameDefault (tstate=0x55555575b5e0,
f=Frame 0x555555ca2760, for file /usr/lib64/python3.9/test/test_os.py, line 3432, in _check_xattrs_str (self=<ExtendedAttributeTests(_testMethodName='test_lpath', _outcome=<_Outcome(expecting_failure=False, result=<RegressionTestResult(failfast=False, failures=[], errors=[], testsRun=66, skipped=[(<ChownFileTests(_testMethodName='test_chown_gid', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at remote 0x7ffff78bb4e0>: 'assertListEqual', <type at remote 0x7ffff78bfa80>: 'assertTupleEqual', <type at remote 0x7ffff78bf000>: 'assertSetEqual', <type at remote 0x7ffff78bf340>: 'assertSetEqual', <type at remote 0x7ffff78c0640>: 'assertMultiLineEqual'}) at remote 0x7fffef3b0e60>, 'test needs at least 2 groups'), (<ChownFileTests(_testMethodName='test_chown_without_permission', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at...(truncated),
throwflag=0) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:3580
#9 0x00007ffff7441308 in _PyEval_EvalFrame (tstate=0x55555575b5e0,
f=Frame 0x555555ca2760, for file /usr/lib64/python3.9/test/test_os.py, line 3432, in _check_xattrs_str (self=<ExtendedAttributeTests(_testMethodName='test_lpath', _outcome=<_Outcome(expecting_failure=False, result=<RegressionTestResult(failfast=False, failures=[], errors=[], testsRun=66, skipped=[(<ChownFileTests(_testMethodName='test_chown_gid', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at remote 0x7ffff78bb4e0>: 'assertListEqual', <type at remote 0x7ffff78bfa80>: 'assertTupleEqual', <type at remote 0x7ffff78bf000>: 'assertSetEqual', <type at remote 0x7ffff78bf340>: 'assertSetEqual', <type at remote 0x7ffff78c0640>: 'assertMultiLineEqual'}) at remote 0x7fffef3b0e60>, 'test needs at least 2 groups'), (<ChownFileTests(_testMethodName='test_chown_without_permission', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at...(truncated),
throwflag=0) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Include/internal/pycore_ceval.h:40
#10 0x00007ffff7456b72 in _PyEval_EvalCode (tstate=0x55555575b5e0, _co=<code at remote 0x7ffff19d4520>,
globals={'__name__': 'test.test_os', '__doc__': None, '__package__': 'test', '__loader__': <SourceFileLoader(name='test.test_os', path='/usr/lib64/python3.9/test/test_os.py') at remote 0x7ffff1c89c80>, '__spec__': <ModuleSpec(name='test.test_os', loader=<...>, origin='/usr/lib64/python3.9/test/test_os.py', loader_state=None, submodule_search_locations=None, _set_fileattr=True, _cached='/usr/lib64/python3.9/test/__pycache__/test_os.cpython-39.pyc', _initializing=False) at remote 0x7ffff1c89cd0>, '__file__': '/usr/lib64/python3.9/test/test_os.py', '__cached__': '/usr/lib64/python3.9/test/__pycache__/test_os.cpython-39.pyc', '__builtins__': {'__name__': 'builtins', '__doc__': "Built-in functions, exceptions, and other objects.\n\nNoteworthy: None is the `nil' object; Ellipsis represents `...' in slices.", '__package__': '', '__loader__': <type at remote 0x55555576d600>, '__spec__': <ModuleSpec(name='builtins', loader=<type at remote 0x55555576d600>, origin='built-in', loader_state=None, submodule_search_locations=None, ...(truncated),
locals=0x0, args=0x7fffef339ae0, argcount=6, kwnames=0x7fffef3b4d88, kwargs=0x7fffef339b10, kwcount=1, kwstep=1, defs=0x0, defcount=0,
kwdefs=0x0, closure=0x0, name='_check_xattrs_str', qualname='ExtendedAttributeTests._check_xattrs_str')
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:4327
#11 0x00007ffff72e90ea in _PyFunction_Vectorcall (func=<function at remote 0x7fffef3b7550>, stack=0x7fffef339ae0, nargsf=6,
kwnames=('follow_symlinks',)) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/call.c:395
#12 0x00007ffff72ec3aa in _PyObject_VectorcallTstate (tstate=0x55555575b5e0, callable=<function at remote 0x7fffef3b7550>, args=0x7fffef339ae0,
nargsf=6, kwnames=('follow_symlinks',)) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Include/cpython/abstract.h:118
#13 0x00007ffff72ec7dd in method_vectorcall (method=<method at remote 0x7fffef328fb0>, args=0x7fffef339ae8, nargsf=9223372036854775813,
kwnames=('follow_symlinks',)) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/classobject.c:53
#14 0x00007ffff72e8850 in PyVectorcall_Call (callable=<method at remote 0x7fffef328fb0>,
tuple=(<type at remote 0x7ffff78c0640>, <built-in method getxattr of module object at remote 0x7ffff7ee0b90>, <built-in method setxattr of module o--Type <RET> for more, q to quit, c to continue without paging--q
Quit
(gdb) frame 8
#8 0x00007ffff745356e in _PyEval_EvalFrameDefault (tstate=0x55555575b5e0,
f=Frame 0x555555ca2760, for file /usr/lib64/python3.9/test/test_os.py, line 3432, in _check_xattrs_str (self=<ExtendedAttributeTests(_testMethodName='test_lpath', _outcome=<_Outcome(expecting_failure=False, result=<RegressionTestResult(failfast=False, failures=[], errors=[], testsRun=66, skipped=[(<ChownFileTests(_testMethodName='test_chown_gid', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at remote 0x7ffff78bb4e0>: 'assertListEqual', <type at remote 0x7ffff78bfa80>: 'assertTupleEqual', <type at remote 0x7ffff78bf000>: 'assertSetEqual', <type at remote 0x7ffff78bf340>: 'assertSetEqual', <type at remote 0x7ffff78c0640>: 'assertMultiLineEqual'}) at remote 0x7fffef3b0e60>, 'test needs at least 2 groups'), (<ChownFileTests(_testMethodName='test_chown_without_permission', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at...(truncated),
throwflag=0) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:3580
3580 result = do_call_core(tstate, func, callargs, kwargs);
(gdb) l
3575 goto error;
3576 }
3577 }
3578 assert(PyTuple_CheckExact(callargs));
3579
3580 result = do_call_core(tstate, func, callargs, kwargs);
3581 Py_DECREF(func);
3582 Py_DECREF(callargs);
3583 Py_XDECREF(kwargs);
3584
(gdb) p f
$1 = Frame 0x555555ca2760, for file /usr/lib64/python3.9/test/test_os.py, line 3432, in _check_xattrs_str (self=<ExtendedAttributeTests(_testMethodName='test_lpath', _outcome=<_Outcome(expecting_failure=False, result=<RegressionTestResult(failfast=False, failures=[], errors=[], testsRun=66, skipped=[(<ChownFileTests(_testMethodName='test_chown_gid', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at remote 0x7ffff78bb4e0>: 'assertListEqual', <type at remote 0x7ffff78bfa80>: 'assertTupleEqual', <type at remote 0x7ffff78bf000>: 'assertSetEqual', <type at remote 0x7ffff78bf340>: 'assertSetEqual', <type at remote 0x7ffff78c0640>: 'assertMultiLineEqual'}) at remote 0x7fffef3b0e60>, 'test needs at least 2 groups'), (<ChownFileTests(_testMethodName='test_chown_without_permission', _outcome=None, _testMethodDoc=None, _cleanups=[], _subtest=None, _type_equality_funcs={<type at remote 0x7ffff78bbde0>: 'assertDictEqual', <type at...(truncated)
(gdb) p tstate
$2 = (PyThreadState *) 0x55555575b5e0
(gdb) p func
$3 = <built-in method setxattr of module object at remote 0x7ffff7ee0b90>
(gdb) p callargs
$4 = ('@test_7745_tmp\xe6', 'user.test3', b'x')
(gdb) p kwargs
$5 = {'follow_symlinks': False}
----------------------
gdb is able to dislay all arguments of all functions in the "where" traceback. It is also able to inspect all variables of the _PyEval_EvalFrameDefault() frame which the evaluation loop of the Python bytecode.
=> it works as expected!
Comparison with Python built in release mode:
----------------------
$ gdb -args python3.9 -m test test_os
(...)
(gdb) run
0:00:00 load avg: 0.01 [1/1] test_os
^C
Program received signal SIGINT, Interrupt.
0x00007ffff6eeb468 in waitpid () from /lib64/libpthread.so.0
(gdb) where
#0 0x00007ffff6eeb468 in waitpid () from /lib64/libpthread.so.0
#1 0x00007ffff757551d in os_waitpid_impl (module=<optimized out>, options=0, pid=7806)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Modules/posixmodule.c:8287
#2 os_waitpid (module=<optimized out>, args=args@entry=0x7fffef74d5d0, nargs=<optimized out>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Modules/clinic/posixmodule.c.h:4102
#3 0x00007ffff74a6d28 in cfunction_vectorcall_FASTCALL (func=<built-in method waitpid of module object at remote 0x7ffff7f456d0>,
args=0x7fffef74d5d0, nargsf=<optimized out>, kwnames=<optimized out>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/methodobject.c:426
#4 0x00007ffff751d7dc in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7fffef74d5d0,
callable=<built-in method waitpid of module object at remote 0x7ffff7f456d0>, tstate=0x55555575af30)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Include/cpython/abstract.h:127
#5 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7fffef74d5d0,
callable=<built-in method waitpid of module object at remote 0x7ffff7f456d0>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Include/cpython/abstract.h:127
#6 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55555575af30)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:5072
#7 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:3518
#8 0x00007ffff750c9a9 in _PyEval_EvalFrame (throwflag=0,
f=Frame 0x7fffef74d420, for file /usr/lib64/python3.9/os.py, line 866, in _spawnvef (mode=0, file='/usr/bin/python3.9', args=['/usr/bin/python3.9', '-c', 'pass'], env={'LS_COLORS': 'rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=01;05;37;41:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;40:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.zst=38;5;9:*.tzst=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.wim=38;5;9:*.swm=38;5;9:*.dwm=38;...(truncated),
tstate=0x55555575af30) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/object.c:1822
#9 function_code_fastcall (
globals={'__name__': 'os', '__doc__': "OS routines for NT or Posix depending on what system we're on.\n\nThis exports:\n - all functions from posix or nt, e.g. unlink, stat, etc.\n - os.path is either posixpath or ntpath\n - os.name is either 'posix' or 'nt'\n - os.curdir is a string representing the current directory (always '.')\n - os.pardir is a string representing the parent directory (always '..')\n - os.sep is the (or a most common) pathname separator ('/' or '\\\\')\n - os.extsep is the extension separator (always '.')\n - os.altsep is the alternate pathname separator (None or '/')\n - os.pathsep is the component separator used in $PATH etc\n - os.linesep is the line separator in text files ('\\r' or '\\n' or '\\r\\n')\n - os.defpath is the default search path for executables\n - os.devnull is the file path of the null device ('/dev/null', etc.)\n\nPrograms that import and use 'os' stand a better chance of being\nportable between different platforms. Of course, they must then\nonly use functions ...(truncated),
nargs=<optimized out>, args=<optimized out>, co=<optimized out>, tstate=0x55555575af30)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/call.c:329
#10 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/call.c:366
#11 0x00007ffff751d7dc in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7fffef76e1d0,
callable=<function at remote 0x7ffff6134f70>, tstate=0x55555575af30)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Include/cpython/abstract.h:127
#12 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7fffef76e1d0, callable=<function at remote 0x7ffff6134f70>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Include/cpython/abstract.h:127
#13 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55555575af30)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:5072
#14 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:3518
#15 0x00007ffff750c9a9 in _PyEval_EvalFrame (throwflag=0,
f=Frame 0x7fffef76e040, for file /usr/lib64/python3.9/os.py, line 911, in spawnvpe (mode=0, file='/usr/bin/python3.9', args=['/usr/bin/python3.9', '-c', 'pass'], env={'LS_COLORS': 'rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=01;05;37;41:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;40:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.zst=38;5;9:*.tzst=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.wim=38;5;9:*.swm=38;5;9:*.dwm=38;5...(truncated),
tstate=0x55555575af30) at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Objects/object.c:1822
(gdb) frame 7
#7 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>)
at /usr/src/debug/python39-3.9.1-5.module+el8.4.0+9921+36eefe8e.x86_64/Python/ceval.c:3518
3518 res = call_function(tstate, &sp, oparg, NULL);
(gdb) l
3513
3514 case TARGET(CALL_FUNCTION): {
3515 PREDICTED(CALL_FUNCTION);
3516 PyObject **sp, *res;
3517 sp = stack_pointer;
3518 res = call_function(tstate, &sp, oparg, NULL);
3519 stack_pointer = sp;
3520 PUSH(res);
3521 if (res == NULL) {
3522 goto error;
(gdb) p tstate
$1 = <optimized out>
(gdb) p sp
$2 = <optimized out>
(gdb) p oparg
$3 = <optimized out>
----------------------
gdb fails to display the arguments of most frames. Example: "cfunction_vectorcall_FASTCALL (func=<built-in method waitpid of module object at remote 0x7ffff7f456d0>, args=0x7fffef74d5d0, nargsf=<optimized out>, kwnames=<optimized out>)": 2 arguments are "optimized out".
Also, gdb fails to display variables in the _PyEval_EvalFrameDefault(): they are "optimized out".
=> gdb fails to inspect most function arguments and variables :-(
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (new module: python39:3.9), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2021:1919 |