Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions Lib/test/test_gdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,11 @@ def get_stack_trace(self, source=None, script=None,
commands += ['set print entry-values no']

if cmds_after_breakpoint:
commands += cmds_after_breakpoint
# bpo-32962: When Python is compiled with -mcet -fcf-protection,
# arguments are unusable before running the first instruction
# of the function entry point. The 'next' command makes the
# required first step.
commands += ['next'] + cmds_after_breakpoint
else:
commands += ['backtrace']

Expand Down Expand Up @@ -847,9 +851,12 @@ def __init__(self):
id("first break point")
l = MyList()
''')
# bpo-32962: same case as in get_stack_trace():
# we need an additional 'next' command in order to read
# arguments of the innermost function of the call stack.
# Verify with "py-bt":
gdb_output = self.get_stack_trace(cmd,
cmds_after_breakpoint=['break wrapper_call', 'continue', 'py-bt'])
cmds_after_breakpoint=['break wrapper_call', 'continue', 'next', 'py-bt'])
self.assertRegex(gdb_output,
r"<method-wrapper u?'__init__' of MyList object at ")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed test_gdb when Python is compiled with flags -mcet -fcf-protection -O0.