From 382d10628243cad78df82b8de564eefc7a235de1 Mon Sep 17 00:00:00 2001 From: midipix Date: Wed, 6 Nov 2019 01:26:05 +0000 Subject: mgdb: winnt_wait(): properly handle the syscall layer's internal breakpoints. --- overlay/mgdb/COPYING.MGDB | 2 +- overlay/mgdb/gdb/winnt-nat.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/overlay/mgdb/COPYING.MGDB b/overlay/mgdb/COPYING.MGDB index fc81925..7a49f6c 100644 --- a/overlay/mgdb/COPYING.MGDB +++ b/overlay/mgdb/COPYING.MGDB @@ -78,7 +78,7 @@ !! . e3eee797eac3a9fd71e78dfd038ea2e21f1b4ed67dbca0bfe6af9391c5bc22ca !! !! !! !! + gdb/winnt-nat.c !! -!! . 1ca4cc62e4e4406c9d1a3b0eeb87db86643594ec7c46a5c37377ab4d369f0d29 !! +!! . 5d8da078aa4c95c6ba3c61431b45b83956a1a7915abadebe38545be68192ebf2 !! !! !! !! !! !! The following copyright notice and license apply to the Extensions: !! 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; -- cgit v1.2.3