diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-02-11 14:50:09 +0100 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-02-11 14:50:09 +0100 |
commit | e1fcd5757be08c23c5e72595d3cc4f5736fa7cda (patch) | |
tree | d0eaeb8b8ef65e69c2843831ae525305b91ff05a /gdb | |
parent | 4185814eb444c3a793dcb7ef567acf3d74019d07 (diff) | |
download | gdb-e1fcd5757be08c23c5e72595d3cc4f5736fa7cda.zip gdb-e1fcd5757be08c23c5e72595d3cc4f5736fa7cda.tar.gz gdb-e1fcd5757be08c23c5e72595d3cc4f5736fa7cda.tar.bz2 |
framefilter quit: Use RETURN_MASK_ERROR
Now when the code is exception safe we can let RETURN_QUIT to pass through as
all the installed cleanups with handle that.
gdb/ChangeLog
2015-02-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* python/py-framefilter.c (py_print_single_arg, enumerate_locals)
(py_print_frame): Use RETURN_MASK_ERROR.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/python/py-framefilter.c | 26 |
2 files changed, 18 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e34b6a9..7cf5640 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2015-02-11 Jan Kratochvil <jan.kratochvil@redhat.com> + * python/py-framefilter.c (py_print_single_arg, enumerate_locals) + (py_print_frame): Use RETURN_MASK_ERROR. + +2015-02-11 Jan Kratochvil <jan.kratochvil@redhat.com> + * python/py-framefilter.c (py_print_frame): Mention RETURN_QUIT in function comment. Wrap all function that can throw in cleanups. (gdbpy_apply_frame_filter): Wrap all function that can throw in diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c index c232946..5531d2b 100644 --- a/gdb/python/py-framefilter.c +++ b/gdb/python/py-framefilter.c @@ -376,7 +376,7 @@ py_print_single_arg (struct ui_out *out, else val = fv; - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { struct cleanup *cleanups = make_cleanup (null_cleanup, NULL); @@ -761,7 +761,7 @@ enumerate_locals (PyObject *iter, /* If the object did not provide a value, read it. */ if (val == NULL) { - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { val = read_var_value (sym, frame); } @@ -781,7 +781,7 @@ enumerate_locals (PyObject *iter, if (print_args_field || args_type != NO_VALUES) make_cleanup_ui_out_tuple_begin_end (out, NULL); } - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { if (! ui_out_is_mi_like_p (out)) { @@ -838,7 +838,7 @@ enumerate_locals (PyObject *iter, do_cleanups (locals_cleanups); - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { ui_out_text (out, "\n"); } @@ -1042,7 +1042,7 @@ py_print_frame (PyObject *filter, int flags, if (frame == NULL) return EXT_LANG_BT_ERROR; - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { gdbarch = get_frame_arch (frame); } @@ -1074,7 +1074,7 @@ py_print_frame (PyObject *filter, int flags, and are printed with indention. */ if (indent > 0) { - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { ui_out_spaces (out, indent*4); } @@ -1117,7 +1117,7 @@ py_print_frame (PyObject *filter, int flags, slot = (struct frame_info **) htab_find_slot (levels_printed, frame, INSERT); - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { level = frame_relative_level (frame); @@ -1151,7 +1151,7 @@ py_print_frame (PyObject *filter, int flags, print nothing. */ if (opts.addressprint && has_addr) { - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { annotate_frame_address (); ui_out_field_core_addr (out, "addr", gdbarch, address); @@ -1218,7 +1218,7 @@ py_print_frame (PyObject *filter, int flags, return EXT_LANG_BT_ERROR; } - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { annotate_frame_function_name (); if (function == NULL) @@ -1251,7 +1251,7 @@ py_print_frame (PyObject *filter, int flags, /* File name/source/line number information. */ if (print_frame_info) { - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { annotate_frame_source_begin (); } @@ -1285,7 +1285,7 @@ py_print_frame (PyObject *filter, int flags, } make_cleanup (xfree, filename); - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { ui_out_wrap_hint (out, " "); ui_out_text (out, " at "); @@ -1319,7 +1319,7 @@ py_print_frame (PyObject *filter, int flags, if (py_line != Py_None) { line = PyLong_AsLong (py_line); - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { ui_out_text (out, ":"); annotate_frame_source_line (); @@ -1340,7 +1340,7 @@ py_print_frame (PyObject *filter, int flags, elided frames, so if MI output detected do not send newline. */ if (! ui_out_is_mi_like_p (out)) { - TRY_CATCH (except, RETURN_MASK_ALL) + TRY_CATCH (except, RETURN_MASK_ERROR) { annotate_frame_end (); ui_out_text (out, "\n"); |