* 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:
Fred Fish 1992-03-04 20:50:10 +00:00
parent c7cb8acbe8
commit d7eddc5177
5 changed files with 69 additions and 15 deletions

View file

@ -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.

View file

@ -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)

View file

@ -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) */

View file

@ -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)

View file

@ -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