]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Handle 64bit breakpoints of WOW64 processes as SIGINT
authorHannes Domani <ssbssa@yahoo.de>
Wed, 23 Sep 2020 16:16:24 +0000 (18:16 +0200)
committerHannes Domani <ssbssa@yahoo.de>
Thu, 24 Sep 2020 17:47:26 +0000 (19:47 +0200)
commit642ed0e9ecf4e5fe526bd3ad6d697008e1dba51d
tree8e605a42d1dd8a32a149dc467ecdd58b3cad6083
parent6006bb78cc14a409166dd12da8417f7f049d1999
Handle 64bit breakpoints of WOW64 processes as SIGINT

When a WOW64 process triggers a breakpoint exception in 64bit code (which
happens when a 64bit gdb calls DebugBreakProcess for a 32bit target),
gdb ignores the breakpoint (because Wow64GetThreadContext can only report
the pc of 32bit code, and there is not int3 at this location).

But if these 64bit breakpoint exceptions are handled as SIGINT, gdb
doesn't check for int3, and always stops the target.

gdb/ChangeLog:

2020-09-23  Hannes Domani  <ssbssa@yahoo.de>

* nat/windows-nat.c (handle_exception): Handle 64bit breakpoints
in WOW64 processes as SIGINT.
* nat/windows-nat.h: Make wow64_process a shared variable.
* windows-nat.c: Remove static wow64_process variable.

gdbserver/ChangeLog:

2020-09-23  Hannes Domani  <ssbssa@yahoo.de>

* win32-low.cc: Remove local wow64_process variable.
* win32-low.h: Remove local wow64_process variable.
gdb/ChangeLog
gdb/nat/windows-nat.c
gdb/nat/windows-nat.h
gdb/windows-nat.c
gdbserver/ChangeLog
gdbserver/win32-low.cc
gdbserver/win32-low.h