aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/python/py-frame.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 22a2271..7f86c89 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2013-10-02 Phil Muldoon <pmuldoon@redhat.com>
+ * python/py-frame.c (frame_info_to_frame_object): Use
+ gdbpy_convert_exception. Clean up Python object on failure.
+
+2013-10-02 Phil Muldoon <pmuldoon@redhat.com>
+
* python/lib/gdb/command/frame_filters.py
(InfoFrameFilter.list_frame_filters): Retrieve exception manually.
(ShowFrameFilterPriority.invoke): Ditto.
diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c
index f960b08..58cb8a0 100644
--- a/gdb/python/py-frame.c
+++ b/gdb/python/py-frame.c
@@ -333,8 +333,12 @@ frame_info_to_frame_object (struct frame_info *frame)
}
frame_obj->gdbarch = get_frame_arch (frame);
}
- GDB_PY_HANDLE_EXCEPTION (except);
-
+ if (except.reason < 0)
+ {
+ Py_DECREF (frame_obj);
+ gdbpy_convert_exception (except);
+ return NULL;
+ }
return (PyObject *) frame_obj;
}