diff options
author | midipix <writeonce@midipix.org> | 2019-11-06 01:26:05 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2019-11-06 01:26:05 +0000 |
commit | 382d10628243cad78df82b8de564eefc7a235de1 (patch) | |
tree | 91e64c7395ce76aef6bb58074e1ec46f1151cfdd /overlay/mgdb/gdb/winnt-nat.c | |
parent | 81c2eaf028916fa9397ed8e14a5d409e5fa11356 (diff) | |
download | chainport-382d10628243cad78df82b8de564eefc7a235de1.tar.bz2 chainport-382d10628243cad78df82b8de564eefc7a235de1.tar.xz |
mgdb: winnt_wait(): properly handle the syscall layer's internal breakpoints.
Diffstat (limited to 'overlay/mgdb/gdb/winnt-nat.c')
-rw-r--r-- | overlay/mgdb/gdb/winnt-nat.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/overlay/mgdb/gdb/winnt-nat.c b/overlay/mgdb/gdb/winnt-nat.c index 16e7b3c..ff4cc68 100644 --- a/overlay/mgdb/gdb/winnt-nat.c +++ b/overlay/mgdb/gdb/winnt-nat.c @@ -990,12 +990,19 @@ static ptid_t winnt_wait( if (!(event = winnt_wait_event(ptid))) return null_ptid; - if ((fskip = winnt_exception_filter_match(event))) { + fskip = winnt_exception_filter_match(event) + || (event->evtattr & __DBG_EVENT_ATTR_INTERNAL_BREAKPOINT); + + if (fskip) { if (!(process = winnt_process_record(event->syspid))) return null_ptid; - if (event->exception_priority) + if (event->evtattr & __DBG_EVENT_ATTR_INTERNAL_BREAKPOINT) + eresponse = __DBG_RESPONSE_CONTINUE; + + else if (event->exception_priority) eresponse = __DBG_RESPONSE_EXCEPTION_NOT_HANDLED; + else eresponse = __DBG_RESPONSE_CONTINUE; |