diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/infcall.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3ec0d95..41889ba 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-01-02 Philippe Waroquiers <philippe.waroquiers@skynet.be> + + * infcall.c (call_function_by_hand_dummy): cleanup/destroy sm + in case of call that did not complete. + 2019-01-02 Andrey Utkin <autkin@undo.io> * symfile.c (find_separate_debug_file): Fix search of debug files for diff --git a/gdb/infcall.c b/gdb/infcall.c index 2a01d70..14b0cbc 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -1189,8 +1189,10 @@ call_function_by_hand_dummy (struct value *function, return retval; } - /* Didn't complete. Restore previous state machine, and - handle the error. */ + /* Didn't complete. Clean up / destroy the call FSM, and restore the + previous state machine, and handle the error. */ + thread_fsm_clean_up (call_thread->thread_fsm, call_thread.get ()); + thread_fsm_delete (call_thread->thread_fsm); call_thread->thread_fsm = saved_sm; } } |