aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infcall.c6
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;
}
}