mstorsjo added inline comments.
================
Comment at:
lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp:495-514
+ int breakpoint_size = 1;
+ switch (GetArchitecture().GetMachine()) {
+ case llvm::Triple::aarch64:
+ breakpoint_size = 4;
+ break;
+
+ case llvm::Triple::arm:
----------------
labath wrote:
> This should be the job of `GetSoftwareBreakpointPCOffset`, although the
> default implementation of that function returns zero for arm. If that is not
> desired (does windows automatically increment the PC or something?), then I
> guess you should override that function.
Thanks for the pointer - I checked and it does indeed seem to be the case that
Windows stops with the PC register incremented when hitting breakpoints, so
it's straightforward to override `GetSoftwareBreakpointPCOffset` here and use
that.
Unfortunately, for the case in ProcessWindows.cpp, it doesn't seem to be as
straightforward to use that (or anything else based on
`GetSoftwareBreakpointTrapOpcode`) as the Process/Platform versions of
`GetSoftwareBreakpointTrapOpcode` also need a `BreakpointSite` where the opcode
actually is set.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D109777/new/
https://reviews.llvm.org/D109777
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits