diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a03163ff7dd..15ae55a1841 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-09-23 Tom Tromey + + PR python/14062: + * python/python.c (gdbpy_run_events): Do not ignore exceptions. + 2018-09-23 Tom Tromey PR python/18170: diff --git a/gdb/python/python.c b/gdb/python/python.c index c16305b900f..8fbce784695 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -987,10 +987,9 @@ gdbpy_run_events (int error, gdb_client_data client_data) if (gdbpy_event_list == NULL) gdbpy_event_list_end = &gdbpy_event_list; - /* Ignore errors. */ gdbpy_ref<> call_result (PyObject_CallObject (item->event, NULL)); if (call_result == NULL) - PyErr_Clear (); + gdbpy_print_stack (); Py_DECREF (item->event); xfree (item); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c04f09a352e..131940bc184 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-09-23 Tom Tromey + + PR python/14062: + * gdb.python/python.exp: Add test for post_event error. + 2018-09-23 Tom Tromey PR python/18170: diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp index a37113c17c7..0723507af3e 100644 --- a/gdb/testsuite/gdb.python/python.exp +++ b/gdb/testsuite/gdb.python/python.exp @@ -134,7 +134,18 @@ gdb_py_test_multiple "post event insertion" \ "end" "" gdb_test "python print (someVal)" "1" "test post event execution" -gdb_test "python gdb.post_event(str(1))" "RuntimeError: Posted event is not callable.*" "test non callable class" +gdb_test "python gdb.post_event(str(1))" "RuntimeError: Posted event is not callable.*" \ + "test non callable class" + +send_gdb "python gdb.post_event(lambda: invalid())\n" +gdb_expect { + -re "name 'invalid' is not defined" { + pass "test post_event error on receipt" + } + default { + fail "test post_event error on receipt" + } +} # Test (no) pagination of the executed command. gdb_test "show height" {Number of lines gdb thinks are in a page is unlimited\.}