summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2002-10-20 06:03:05 +0000
committermarcel <marcel@FreeBSD.org>2002-10-20 06:03:05 +0000
commitd91408e73a35f283640aeb211acd3dcf87150de1 (patch)
treef5b93145534336b54f2c38db18317beea683efbc
parent446c299a3104da1d056c9b4c48e7bf8e01b5d6c9 (diff)
downloadFreeBSD-src-d91408e73a35f283640aeb211acd3dcf87150de1.zip
FreeBSD-src-d91408e73a35f283640aeb211acd3dcf87150de1.tar.gz
Remove the special casing for IP addresses that are within the IVT
or the do_syscall() function. We have unwind directives to stop the unwinder.
-rw-r--r--sys/ia64/ia64/db_trace.c24
1 files changed, 2 insertions, 22 deletions
diff --git a/sys/ia64/ia64/db_trace.c b/sys/ia64/ia64/db_trace.c
index baf78ad..7c79d06 100644
--- a/sys/ia64/ia64/db_trace.c
+++ b/sys/ia64/ia64/db_trace.c
@@ -104,28 +104,8 @@ db_stack_trace_cmd(db_expr_t addr, boolean_t have_addr, db_expr_t count, char *m
db_printsym(ip, DB_STGY_PROC);
db_printf("\n");
- /*
- * Was this an exception? If so, we can keep unwinding
- * based on the interrupted trapframe. We could do
- * this by constructing funky unwind records in
- * exception.s but this is easier.
- */
- if (ip >= (u_int64_t) &ia64_vector_table[0]
- && ip < (u_int64_t) &ia64_vector_table[32768]) {
- u_int64_t sp = ia64_unwind_state_get_sp(us);
- ia64_free_unwind_state(us);
- us = ia64_create_unwind_state((struct trapframe *)
- (sp + 16));
- } else if (ip >= (u_int64_t) &do_syscall[0]
- && ip < (u_int64_t) &do_syscall_end[0]) {
- u_int64_t sp = ia64_unwind_state_get_sp(us);
- ia64_free_unwind_state(us);
- us = ia64_create_unwind_state((struct trapframe *)
- (sp + 16 + 8*8));
- } else {
- if (ia64_unwind_state_previous_frame(us))
- break;
- }
+ if (ia64_unwind_state_previous_frame(us))
+ break;
ip = ia64_unwind_state_get_ip(us);
if (!ip)
OpenPOWER on IntegriCloud