New submission from STINNER Victor <vstin...@python.org>:
On my PR 19077 which changes Python/ceval.c, test_gdb fails on Travis CI with Python compiled with clang -Og. The -Og optimization level is a compromise between performance and the ability to debug Python. The problem is that gdb fails to retrieve some information and so test_gdb fails. I proposed bpo-38350 "./configure --with-pydebug should use -O0 rather than -Og", but the status quo is to continue to use -Og by default. See examples of test_gdb failures from PR 19077 below. I propose to skip a test if one of the follow pattern is found in gdb output: * '<optimized out>', * '(frame information optimized out)', * 'Unable to read information on python frame', ====================================================================== FAIL: test_basic_command (test.test_gdb.PyListTests) Verify that the "py-list" command works ---------------------------------------------------------------------- (...) AssertionError: (...) 'Breakpoint 1 at 0x5aabf1: file Python/bltinmodule.c, line 1173. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Breakpoint 1, builtin_id (self=, v=42) at Python/bltinmodule.c:1173 1173\t PyObject *id = PyLong_FromVoidPtr(v); Unable to read information on python frame ' did not end with ' 5 6 def bar(a, b, c): 7 baz(a, b, c) 8 9 def baz(*args): >10 id(42) 11 12 foo(1, 2, 3) ' ====================================================================== FAIL: test_bt (test.test_gdb.PyBtTests) Verify that the "py-bt" command works ---------------------------------------------------------------------- (...) AssertionError: 'Breakpoint 1 at 0x5aabf1: file Python/bltinmodule.c, line 1173. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Breakpoint 1, builtin_id (self=, v=42) at Python/bltinmodule.c:1173 1173\t PyObject *id = PyLong_FromVoidPtr(v); Traceback (most recent call first): <built-in method id of module object at remote 0x7ffff7f87050> (frame information optimized out) File "/home/travis/build/python/cpython/Lib/test/gdb_sample.py", line 7, in bar baz(a, b, c) File "/home/travis/build/python/cpython/Lib/test/gdb_sample.py", line 4, in foo bar(a, b, c) (frame information optimized out) ' did not match '^.* Traceback \\(most recent call first\\): <built-in method id of module object .*> File ".*gdb_sample.py", line 10, in baz id\\(42\\) File ".*gdb_sample.py", line 7, in bar baz\\(a, b, c\\) File ".*gdb_sample.py", line 4, in foo bar\\(a, b, c\\) File ".*gdb_sample.py", line 12, in <module> foo\\(1, 2, 3\\) ' ---------- components: Tests messages: 364640 nosy: vstinner priority: normal severity: normal status: open title: test_gdb should better detect when Python is optimized versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40019> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com