diff options
author | midipix <writeonce@midipix.org> | 2019-09-17 20:42:36 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2019-09-19 03:34:00 +0000 |
commit | 1cac18b056bcae7fb1c254a73c4deda1a2661977 (patch) | |
tree | 17202dba85420e030fe6885a966ba0602603bdbc | |
parent | f65c6aec2523148f2a1f4c144872f6f91047ef2c (diff) | |
download | chainport-1cac18b056bcae7fb1c254a73c4deda1a2661977.tar.bz2 chainport-1cac18b056bcae7fb1c254a73c4deda1a2661977.tar.xz |
mgdb: further refine terminal ownership logic.
-rw-r--r-- | overlay/mgdb/gdb/winnt-nat.c | 9 |
1 files 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); |