[Python-checkins] cpython (3.5): python-gdb.py: catch gdb.error on gdb.selected_frame()
victor.stinner
python-checkins at python.org
Fri Dec 16 04:07:20 EST 2016
https://hg.python.org/cpython/rev/092d4d83c50a
changeset: 105667:092d4d83c50a
branch: 3.5
parent: 105629:a89469328b78
user: Victor Stinner <victor.stinner at gmail.com>
date: Fri Dec 16 10:00:39 2016 +0100
summary:
python-gdb.py: catch gdb.error on gdb.selected_frame()
files:
Tools/gdb/libpython.py | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -1527,7 +1527,11 @@
def get_selected_python_frame(cls):
'''Try to obtain the Frame for the python-related code in the selected
frame, or None'''
- frame = cls.get_selected_frame()
+ try:
+ frame = cls.get_selected_frame()
+ except gdb.error:
+ # No frame: Python didn't start yet
+ return None
while frame:
if frame.is_python_frame():
@@ -1668,6 +1672,10 @@
def move_in_stack(move_up):
'''Move up or down the stack (for the py-up/py-down command)'''
frame = Frame.get_selected_python_frame()
+ if not frame:
+ print('Unable to locate python frame')
+ return
+
while frame:
if move_up:
iter_frame = frame.older()
@@ -1730,6 +1738,10 @@
def invoke(self, args, from_tty):
frame = Frame.get_selected_python_frame()
+ if not frame:
+ print('Unable to locate python frame')
+ return
+
while frame:
if frame.is_python_frame():
frame.print_summary()
@@ -1747,8 +1759,12 @@
def invoke(self, args, from_tty):
+ frame = Frame.get_selected_python_frame()
+ if not frame:
+ print('Unable to locate python frame')
+ return
+
sys.stdout.write('Traceback (most recent call first):\n')
- frame = Frame.get_selected_python_frame()
while frame:
if frame.is_python_frame():
frame.print_traceback()
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list