diff options
author | John Baldwin <jhb@FreeBSD.org> | 2020-05-11 20:58:27 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2020-05-11 20:58:27 +0000 |
commit | dea1ea9ed3db1ded3f5c6214c8bfbb3a49ffb2bf (patch) | |
tree | 5a39cc70e5f8b1202add50b033382d4be198b54e | |
parent | 7ebf60ad57211c778f4c4a5a0c9c179aed1b02be (diff) | |
download | src-test2-dea1ea9ed3db1ded3f5c6214c8bfbb3a49ffb2bf.tar.gz src-test2-dea1ea9ed3db1ded3f5c6214c8bfbb3a49ffb2bf.zip |
Notes
-rw-r--r-- | sys/riscv/riscv/db_trace.c | 15 | ||||
-rw-r--r-- | sys/riscv/riscv/machdep.c | 2 |
2 files changed, 7 insertions, 10 deletions
diff --git a/sys/riscv/riscv/db_trace.c b/sys/riscv/riscv/db_trace.c index cb91170d7ed4..2a783b2ed0f0 100644 --- a/sys/riscv/riscv/db_trace.c +++ b/sys/riscv/riscv/db_trace.c @@ -130,15 +130,12 @@ db_trace_thread(struct thread *thr, int count) struct unwind_state frame; struct pcb *ctx; - if (thr != curthread) { - ctx = kdb_thr_ctx(thr); - - frame.sp = (uint64_t)ctx->pcb_sp; - frame.fp = (uint64_t)ctx->pcb_s[0]; - frame.pc = (uint64_t)ctx->pcb_ra; - db_stack_trace_cmd(&frame); - } else - db_trace_self(); + ctx = kdb_thr_ctx(thr); + + frame.sp = (uint64_t)ctx->pcb_sp; + frame.fp = (uint64_t)ctx->pcb_s[0]; + frame.pc = (uint64_t)ctx->pcb_ra; + db_stack_trace_cmd(&frame); return (0); } diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index e0b05145e9ff..53c89ccf81b9 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -568,7 +568,7 @@ makectx(struct trapframe *tf, struct pcb *pcb) memcpy(pcb->pcb_s, tf->tf_s, sizeof(tf->tf_s)); - pcb->pcb_ra = tf->tf_ra; + pcb->pcb_ra = tf->tf_sepc; pcb->pcb_sp = tf->tf_sp; pcb->pcb_gp = tf->tf_gp; pcb->pcb_tp = tf->tf_tp; |