aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2021-03-01 14:00:17 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2021-03-08 14:02:16 +0000
commit46810641e879fb406354a7094a216e955c9ce117 (patch)
treeeaf03744b09d39407a1af475a9a25a2a00bc4f42
parent35435ee5725a8c0c67bdb4fd22d18154634dd081 (diff)
downloadsrc-46810641e879fb406354a7094a216e955c9ce117.tar.gz
src-46810641e879fb406354a7094a216e955c9ce117.zip
arm64: update kdb_thrctx->pcb_lr with BKPT_SKIP
This value should be kept in sync with updates to kdb_frame->tf_elr, since it is queried by PC_REGS() in several places. Reviewed by: markj, jhb Sponsored by: The FreeBSD Foundation (cherry picked from commit bd0b7cbf5ac1baff4211e09584e0b86d4d96228b)
-rw-r--r--sys/arm64/include/db_machdep.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/arm64/include/db_machdep.h b/sys/arm64/include/db_machdep.h
index f2fd2a57a9c3..61b58415e41c 100644
--- a/sys/arm64/include/db_machdep.h
+++ b/sys/arm64/include/db_machdep.h
@@ -49,8 +49,9 @@ typedef long db_expr_t;
#define BKPT_SIZE (4)
#define BKPT_SET(inst) (BKPT_INST)
-#define BKPT_SKIP do { \
- kdb_frame->tf_elr += BKPT_SIZE; \
+#define BKPT_SKIP do { \
+ kdb_frame->tf_elr += BKPT_SIZE; \
+ kdb_thrctx->pcb_lr += BKPT_SIZE; \
} while (0)
#define db_clear_single_step kdb_cpu_clear_singlestep