This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] Multi-arch SIGTRAMP_START and SIGTRAMP_END
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 6 Sep 2002 22:17:28 +0200 (CEST)
- Subject: [PATCH] Multi-arch SIGTRAMP_START and SIGTRAMP_END
Subject says it all.
Checked in.
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* gdbarch.sh (SIGTRAMP_START, SIGTRAMP_END): New methods.
* gdbarch.h, gdbarch.c: Re-generate.
* blockframe.c (find_pc_sect_partial_function): Convert to use
SIGTRAMP_START_P predicate.
Index: blockframe.c
===================================================================
RCS file: /cvs/src/src/gdb/blockframe.c,v
retrieving revision 1.38
diff -u -p -r1.38 blockframe.c
--- blockframe.c 22 Aug 2002 22:25:17 -0000 1.38
+++ blockframe.c 6 Sep 2002 20:15:49 -0000
@@ -816,8 +816,7 @@ find_pc_sect_partial_function (CORE_ADDR
/* If sigtramp is in the u area, it counts as a function (especially
important for step_1). */
-#if defined SIGTRAMP_START
- if (PC_IN_SIGTRAMP (mapped_pc, (char *) NULL))
+ if (SIGTRAMP_START_P () && PC_IN_SIGTRAMP (mapped_pc, (char *) NULL))
{
cache_pc_function_low = SIGTRAMP_START (mapped_pc);
cache_pc_function_high = SIGTRAMP_END (mapped_pc);
@@ -825,7 +824,6 @@ find_pc_sect_partial_function (CORE_ADDR
cache_pc_function_section = section;
goto return_cached_value;
}
-#endif
msymbol = lookup_minimal_symbol_by_pc_section (mapped_pc, section);
pst = find_pc_sect_psymtab (mapped_pc, section);
Index: gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.158
diff -u -p -r1.158 gdbarch.sh
--- gdbarch.sh 24 Aug 2002 00:21:34 -0000 1.158
+++ gdbarch.sh 6 Sep 2002 20:15:50 -0000
@@ -636,6 +636,8 @@ f:2:IN_SOLIB_RETURN_TRAMPOLINE:int:in_so
# Some code also depends on SIGTRAMP_START and SIGTRAMP_END but other
# does not.
f:2:PC_IN_SIGTRAMP:int:pc_in_sigtramp:CORE_ADDR pc, char *name:pc, name:::legacy_pc_in_sigtramp::0
+F:2:SIGTRAMP_START:CORE_ADDR:sigtramp_start:CORE_ADDR pc:pc
+f:2:SIGTRAMP_END:CORE_ADDR:sigtramp_end:CORE_ADDR pc:pc:::::0
# A target might have problems with watchpoints as soon as the stack
# frame of the current function has been destroyed. This mostly happens
# as the first action in a funtion's epilogue. in_function_epilogue_p()