aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/i386
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-07-23 00:53:28 +0000
committerStu Grossman <grossman@cygnus>1994-07-23 00:53:28 +0000
commitcad1498f8a8aaa41ca54ffdde76263740372975a (patch)
treeeaf8dfd3a65cdb20fc02c37c7ec9ae5c44dad53f /gdb/config/i386
parentf2c2e75ce090e3a012a942077587b2acc948e4ee (diff)
downloadgdb-cad1498f8a8aaa41ca54ffdde76263740372975a.zip
gdb-cad1498f8a8aaa41ca54ffdde76263740372975a.tar.gz
gdb-cad1498f8a8aaa41ca54ffdde76263740372975a.tar.bz2
* Makefile.in: Add stuff to build nlmstub.
* Add rule for annotate.o to keep Sun make happy. * configure.in: Add config for powerpc/Netware. * partial-stab.h (near N_SO): Don't call START_PSYMTAB with null filename. This speeds up handling of trailing N_SO stabs (they mark the end of a .o file). * target.c, target.h: Change the way pushing and popping of targets work to support target overlays and inheritance. * corelow.c, hppa-tdep.c, inflow.c, remote-nindy.c, utils.c: Fixup references to current_target, due to previous changes. * config/i386/tm-i386nw.h: Enable longjmp support. More work is needed to get the address of longjmp out of the target.
Diffstat (limited to 'gdb/config/i386')
-rw-r--r--gdb/config/i386/tm-i386nw.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gdb/config/i386/tm-i386nw.h b/gdb/config/i386/tm-i386nw.h
index 45af050..087b09c 100644
--- a/gdb/config/i386/tm-i386nw.h
+++ b/gdb/config/i386/tm-i386nw.h
@@ -29,3 +29,22 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Stop backtracing when we wander into main. */
#define FRAME_CHAIN_VALID_ALTERNATE
+
+
+/* Offsets (in target ints) into jmp_buf. Not defined in any system header
+ file, so we have to step through setjmp/longjmp with a debugger and figure
+ them out. */
+
+#define JB_ELEMENT_SIZE 4 /* jmp_buf[] is array of ints */
+
+#define JB_PC 6 /* Setjmp()'s return PC saved here */
+
+/* Figure out where the longjmp will land. Slurp the args out of the stack.
+ We expect the first arg to be a pointer to the jmp_buf structure from which
+ we extract the pc (JB_PC) that we will land at. The pc is copied into ADDR.
+ This routine returns true on success */
+
+extern int
+get_longjmp_target PARAMS ((CORE_ADDR *));
+
+#define GET_LONGJMP_TARGET(ADDR) get_longjmp_target(ADDR)