From db664aebf65f1ad301050d904019fb33918d7fbd Mon Sep 17 00:00:00 2001 From: Mark Florisson Date: Wed, 15 Dec 2010 20:42:28 +0100 Subject: [PATCH] Made libpython.py compatible with gdb 7.1 --- Cython/Debugger/libpython.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/Cython/Debugger/libpython.py b/Cython/Debugger/libpython.py index 9c916715..ab8df406 100644 --- a/Cython/Debugger/libpython.py +++ b/Cython/Debugger/libpython.py @@ -2211,19 +2211,6 @@ class PyCont(ExecutionControlCommandBase): invoke = ExecutionControlCommandBase.cont -# Wrap py-step and py-next in gdb defines to make them repeatable. -py_step = PyStep('-py-step', PythonInfo()) -py_next = PyNext('-py-next', PythonInfo()) -register_defines() -py_finish = PyFinish('py-finish', PythonInfo()) -py_run = PyRun('py-run', PythonInfo()) -py_cont = PyCont('py-cont', PythonInfo()) - -gdb.execute('set breakpoint pending on') - -Py_single_input = 256 -Py_file_input = 257 -Py_eval_input = 258 def _pointervalue(gdbval): """ @@ -2266,7 +2253,11 @@ def get_inferior_unicode_postfix(): return '' class PythonCodeExecutor(object): - + + Py_single_input = 256 + Py_file_input = 257 + Py_eval_input = 258 + def malloc(self, size): chunk = (gdb.parse_and_eval("(void *) malloc((size_t) %d)" % size)) @@ -2439,7 +2430,7 @@ class PyExec(gdb.Command): def readcode(self, expr): if expr: - return expr, Py_single_input + return expr, PythonCodeExecutor.Py_single_input else: lines = [] while True: @@ -2469,7 +2460,18 @@ class PyExec(gdb.Command): executor.evalcode(expr, input_type, global_dict, local_dict) + +gdb.execute('set breakpoint pending on') + if hasattr(gdb, 'GdbError'): + # Wrap py-step and py-next in gdb defines to make them repeatable. + py_step = PyStep('-py-step', PythonInfo()) + py_next = PyNext('-py-next', PythonInfo()) + register_defines() + py_finish = PyFinish('py-finish', PythonInfo()) + py_run = PyRun('py-run', PythonInfo()) + py_cont = PyCont('py-cont', PythonInfo()) + py_exec = FixGdbCommand('py-exec', '-py-exec') _py_exec = PyExec("-py-exec", gdb.COMMAND_DATA, gdb.COMPLETE_NONE) else: -- 2.26.2