summaryrefslogtreecommitdiff
path: root/gdbserver
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2020-04-08 14:33:35 -0600
committerTom Tromey <tromey@adacore.com>2020-04-08 14:47:59 -0600
commite54e59297a747bb4f396345aa090d43f155b5576 (patch)
treeec458caf2634e46e76038a2fbc1c2708667ee896 /gdbserver
parentd6225aff7a4f11c3443515c0d8dad12351b97575 (diff)
downloadbinutils-gdb-e54e59297a747bb4f396345aa090d43f155b5576.tar.gz
Introduce win32_target_ops::decr_pc_after_break
This adds a decr_pc_after_break member to win32_target_ops and updates the two Windows targets to set it. Note that I can't test the win32-arm-low.c change. gdbserver/ChangeLog 2020-04-08 Tom Tromey <tromey@adacore.com> * win32-low.h (struct win32_target_ops) <decr_pc_after_break>: New field. * win32-i386-low.c (the_low_target): Update. * win32-arm-low.c (the_low_target): Update.
Diffstat (limited to 'gdbserver')
-rw-r--r--gdbserver/ChangeLog7
-rw-r--r--gdbserver/win32-arm-low.cc1
-rw-r--r--gdbserver/win32-i386-low.cc1
-rw-r--r--gdbserver/win32-low.h4
4 files changed, 13 insertions, 0 deletions
diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog
index ee66a4b6d99..24c42e28d06 100644
--- a/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,5 +1,12 @@
2020-04-08 Tom Tromey <tromey@adacore.com>
+ * win32-low.h (struct win32_target_ops) <decr_pc_after_break>: New
+ field.
+ * win32-i386-low.c (the_low_target): Update.
+ * win32-arm-low.c (the_low_target): Update.
+
+2020-04-08 Tom Tromey <tromey@adacore.com>
+
* win32-low.h (win32_process_target::read_pc)
(win32_process_target::write_pc): Declare.
* win32-low.c (win32_process_target::read_pc)
diff --git a/gdbserver/win32-arm-low.cc b/gdbserver/win32-arm-low.cc
index 77200112df1..238ee4b05be 100644
--- a/gdbserver/win32-arm-low.cc
+++ b/gdbserver/win32-arm-low.cc
@@ -148,6 +148,7 @@ struct win32_target_ops the_low_target = {
NULL, /* single_step */
(const unsigned char *) &arm_wince_breakpoint,
arm_wince_breakpoint_len,
+ 0,
arm_win32_get_pc,
arm_win32_set_pc,
/* Watchpoint related functions. See target.h for comments. */
diff --git a/gdbserver/win32-i386-low.cc b/gdbserver/win32-i386-low.cc
index eac15b5694a..48893af33b2 100644
--- a/gdbserver/win32-i386-low.cc
+++ b/gdbserver/win32-i386-low.cc
@@ -506,6 +506,7 @@ struct win32_target_ops the_low_target = {
i386_single_step,
&i386_win32_breakpoint,
i386_win32_breakpoint_len,
+ 1,
i386_win32_get_pc,
i386_win32_set_pc,
i386_supports_z_point_type,
diff --git a/gdbserver/win32-low.h b/gdbserver/win32-low.h
index 56ff8a9baf2..d2b39a46fd9 100644
--- a/gdbserver/win32-low.h
+++ b/gdbserver/win32-low.h
@@ -63,6 +63,10 @@ struct win32_target_ops
const unsigned char *breakpoint;
int breakpoint_len;
+ /* Amount by which to decrement the PC after a breakpoint is
+ hit. */
+ int decr_pc_after_break;
+
/* Get the PC register from REGCACHE. */
CORE_ADDR (*get_pc) (struct regcache *regcache);
/* Set the PC register in REGCACHE. */