summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2009-07-22 21:15:42 +0000
committermiod <miod@openbsd.org>2009-07-22 21:15:42 +0000
commit167c8ac6114305d65fc5e5cf8e9d9b092cc0a76a (patch)
treea67607d5b8cc3f06f4cbaa8a71f6978d307548cd
parentPut the PG_RELEASED changes diff back in. (diff)
downloadwireguard-openbsd-167c8ac6114305d65fc5e5cf8e9d9b092cc0a76a.tar.xz
wireguard-openbsd-167c8ac6114305d65fc5e5cf8e9d9b092cc0a76a.zip
When disassembling, if our pc matches the beginning of a routine, then
it's at routine+0; do not search for the previous routine in the symbol table. This fixes tracebacks when the fault occurs on the first instruction of a routine.
-rw-r--r--sys/arch/mips64/mips64/db_machdep.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/arch/mips64/mips64/db_machdep.c b/sys/arch/mips64/mips64/db_machdep.c
index f84585025a0..9ba66a49770 100644
--- a/sys/arch/mips64/mips64/db_machdep.c
+++ b/sys/arch/mips64/mips64/db_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: db_machdep.c,v 1.17 2008/06/22 21:02:10 miod Exp $ */
+/* $OpenBSD: db_machdep.c,v 1.18 2009/07/22 21:15:42 miod Exp $ */
/*
* Copyright (c) 1998-2003 Opsycon AB (www.opsycon.se)
@@ -284,8 +284,6 @@ loop:
* Watch out for function tail optimizations.
*/
sym = db_search_symbol(pc, DB_STGY_ANY, &diff);
- if (sym != DB_SYM_NULL && diff == 0)
- sym = db_search_symbol(pc - 4, DB_STGY_ANY, &diff);
db_symbol_values(sym, &symname, 0);
if (sym != DB_SYM_NULL) {
subr = pc - diff;