summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2019-09-17 20:42:36 +0000
committermidipix <writeonce@midipix.org>2019-09-19 03:34:00 +0000
commit1cac18b056bcae7fb1c254a73c4deda1a2661977 (patch)
tree17202dba85420e030fe6885a966ba0602603bdbc
parentf65c6aec2523148f2a1f4c144872f6f91047ef2c (diff)
downloadchainport-1cac18b056bcae7fb1c254a73c4deda1a2661977.tar.bz2
chainport-1cac18b056bcae7fb1c254a73c4deda1a2661977.tar.xz
mgdb: further refine terminal ownership logic.
-rw-r--r--overlay/mgdb/gdb/winnt-nat.c9
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);