diff options
| author | matt <matt@NetBSD.org> | 2002-03-31 00:14:18 +0000 |
|---|---|---|
| committer | matt <matt@NetBSD.org> | 2002-03-31 00:14:18 +0000 |
| commit | 71f2ffe1e7d310ffefedfa597f4a84e32a4d99e0 (patch) | |
| tree | 67101a2bc48bdd86fd02e53055e941c7b5ab21eb /sys | |
| parent | 015bf5947686f61426e9b27632c0e7f88994cc7b (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.c | 15 |
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; |
