* defs.h, utils.c: xrealloc takes PTR as first arg.
* defs.h: Reword confusing comment about ANSI prototypes. * defs.h: Some minor whitespace changes. * infrun.c (wait_for_inferior): Compare int tmp to int 0, not NULL, which can be (void *). * tm-amix.h, tm-i386v4.h: Add defines for setjmp/longjmp handling. * tm-i386v.h (SP_ARG0): Define * xm-sysv4.h: Back out of change for missing prototypes. * i386-tdep.c (get_longjmp_target): Add function.
This commit is contained in:
parent
c7cb8acbe8
commit
d7eddc5177
5 changed files with 69 additions and 15 deletions
|
@ -1,3 +1,15 @@
|
|||
Wed Mar 4 11:56:42 1992 Fred Fish (fnf@cygnus.com)
|
||||
|
||||
* defs.h, utils.c: xrealloc takes PTR as first arg.
|
||||
* defs.h: Reword confusing comment about ANSI prototypes.
|
||||
* defs.h: Some minor whitespace changes.
|
||||
* infrun.c (wait_for_inferior): Compare int tmp to int 0,
|
||||
not NULL, which can be (void *).
|
||||
* tm-amix.h, tm-i386v4.h: Add defines for setjmp/longjmp handling.
|
||||
* tm-i386v.h (SP_ARG0): Define
|
||||
* xm-sysv4.h: Back out of change for missing prototypes.
|
||||
* i386-tdep.c (get_longjmp_target): Add function.
|
||||
|
||||
Tue Mar 3 15:11:52 1992 Michael Tiemann (tiemann@cygnus.com)
|
||||
|
||||
* All GDB files that #include defs.h: Removed stdio.h.
|
||||
|
|
|
@ -45,3 +45,33 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
|
||||
#include "tm-sysv4.h"
|
||||
#include "tm-68k.h"
|
||||
|
||||
/* 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. As a double check, note that <setjmp> defines _JBLEN as 13,
|
||||
which matches the number of elements we see saved by setjmp(). */
|
||||
|
||||
#define JB_ELEMENT_SIZE sizeof(int) /* jmp_buf[_JBLEN] is array of ints */
|
||||
|
||||
#define JB_D2 0
|
||||
#define JB_D3 1
|
||||
#define JB_D4 2
|
||||
#define JB_D5 3
|
||||
#define JB_D6 4
|
||||
#define JB_D7 5
|
||||
#define JB_A1 6
|
||||
#define JB_A2 7
|
||||
#define JB_A3 8
|
||||
#define JB_A4 9
|
||||
#define JB_A5 10
|
||||
#define JB_A6 11
|
||||
#define JB_A7 12
|
||||
|
||||
#define JB_PC JB_A1 /* Setjmp()'s return PC saved in A1 */
|
||||
|
||||
/* 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 */
|
||||
|
||||
#define GET_LONGJMP_TARGET(ADDR) get_longjmp_target(ADDR)
|
||||
|
|
|
@ -332,4 +332,8 @@ print_387_control_word PARAMS ((unsigned int));
|
|||
extern void
|
||||
print_387_status_word PARAMS ((unsigned int));
|
||||
|
||||
/* Offset from SP to first arg on stack at first instruction of a function */
|
||||
|
||||
#define SP_ARG0 (1 * 4)
|
||||
|
||||
#endif /* !defined (TM_I386V_H) */
|
||||
|
|
|
@ -41,3 +41,26 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
|
||||
#undef FRAME_NUM_ARGS
|
||||
#define FRAME_NUM_ARGS(val,fi) (val = -1)
|
||||
|
||||
/* 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. Note that <setjmp> defines _JBLEN as 10, which is the default
|
||||
if no specific machine is selected, even though we only use 6 slots. */
|
||||
|
||||
#define JB_ELEMENT_SIZE sizeof(int) /* jmp_buf[_JBLEN] is array of ints */
|
||||
|
||||
#define JB_EBX 0
|
||||
#define JB_ESI 1
|
||||
#define JB_EDI 2
|
||||
#define JB_EBP 3
|
||||
#define JB_ESP 4
|
||||
#define JB_EDX 5
|
||||
|
||||
#define JB_PC JB_EDX /* Setjmp()'s return PC saved in EDX */
|
||||
|
||||
/* 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 */
|
||||
|
||||
#define GET_LONGJMP_TARGET(ADDR) get_longjmp_target(ADDR)
|
||||
|
|
|
@ -65,18 +65,3 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
/* Use setpgid(0,0) to run inferior in a separate process group */
|
||||
|
||||
#define NEED_POSIX_SETPGID
|
||||
|
||||
/* Declare the return types (or supply prototypes for) functions which
|
||||
do not end up being defined by any of the currently included system
|
||||
header files, and which cannot be defined in any common file since a
|
||||
single definition is known to cause portability problems due to
|
||||
conflicts with definitions on other systems.
|
||||
FIXME: This may only be a temporary solution (fnf) */
|
||||
|
||||
#ifdef __STDC__
|
||||
extern void *malloc(size_t);
|
||||
extern void *realloc(void *, size_t);
|
||||
#else
|
||||
extern char *malloc();
|
||||
extern char *realloc();
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue