summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authormatt <matt@NetBSD.org>2002-03-31 00:14:18 +0000
committermatt <matt@NetBSD.org>2002-03-31 00:14:18 +0000
commit71f2ffe1e7d310ffefedfa597f4a84e32a4d99e0 (patch)
tree67101a2bc48bdd86fd02e53055e941c7b5ab21eb /sys
parent015bf5947686f61426e9b27632c0e7f88994cc7b (diff)
In db_stack_dump, only symbolize pc if it's in the text segment.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/vax/vax/db_machdep.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/arch/vax/vax/db_machdep.c b/sys/arch/vax/vax/db_machdep.c
index eaa478b39c9..5907cc8693d 100644
--- a/sys/arch/vax/vax/db_machdep.c
+++ b/sys/arch/vax/vax/db_machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: db_machdep.c,v 1.31 2001/06/12 13:22:06 ragge Exp $ */
+/* $NetBSD: db_machdep.c,v 1.32 2002/03/31 00:14:18 matt Exp $ */
/*
* :set tabs=4
@@ -314,7 +314,7 @@ db_dump_stack(VAX_CALLFRAME *fp, u_int stackbase,
db_expr_t diff;
db_sym_t sym;
char *symname;
- extern int sret;
+ extern int sret, etext;
(*pr)("Stack traceback : \n");
if (IN_USERLAND(fp)) {
@@ -363,9 +363,14 @@ db_dump_stack(VAX_CALLFRAME *fp, u_int stackbase,
diff = INT_MAX;
symname = NULL;
- sym = db_search_symbol(pc, DB_STGY_ANY, &diff);
- db_symbol_values(sym, &symname, 0);
- (*pr)("0x%lx: %s+0x%lx(", fp, symname, diff);
+ if (pc >= 0x80000000 && pc < (u_int) &etext) {
+ sym = db_search_symbol(pc, DB_STGY_ANY, &diff);
+ db_symbol_values(sym, &symname, 0);
+ }
+ if (symname != NULL)
+ (*pr)("0x%lx: %s+0x%lx(", fp, symname, diff);
+ else
+ (*pr)("0x%lx: %#x(", fp, pc);
/* First get the frame that called this function ... */
tmp_frame = fp->vax_fp;