From 1cac18b056bcae7fb1c254a73c4deda1a2661977 Mon Sep 17 00:00:00 2001 From: midipix Date: Tue, 17 Sep 2019 20:42:36 +0000 Subject: mgdb: further refine terminal ownership logic. --- overlay/mgdb/gdb/winnt-nat.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/overlay/mgdb/gdb/winnt-nat.c b/overlay/mgdb/gdb/winnt-nat.c index a52ce8e..26c03e6 100644 --- a/overlay/mgdb/gdb/winnt-nat.c +++ b/overlay/mgdb/gdb/winnt-nat.c @@ -573,6 +573,10 @@ static void winnt_respond (int pfd, struct __dbg_event * event, int response) winnt_delete_thread(event); break; + case __DBG_STATE_EXIT_PROCESS: + target_terminal_ours(); + break; + default: break; } @@ -829,6 +833,8 @@ static ptid_t winnt_wait( struct __dbg_event * event; struct winnt_process * process; + target_terminal_ours(); + if (!(event = winnt_wait_event(ptid))) return null_ptid; @@ -846,7 +852,6 @@ static ptid_t winnt_wait( case __DBG_STATE_SINGLE_STEP: waitstatus->kind = TARGET_WAITKIND_STOPPED; waitstatus->value.sig = GDB_SIGNAL_TRAP; - target_terminal_ours(); break; case __DBG_STATE_CREATE_THREAD: @@ -980,8 +985,6 @@ static void winnt_resume ( ptid_t ptid, int step, enum gdb_signal sig) { - target_terminal_inferior(); - ptid_equal(ptid,minus_one_ptid) ? winnt_resume_all(step,sig) : winnt_resume_one(ptid,step,sig); -- cgit v1.2.3