+Fri Oct 2 22:04:42 1992 John Gilmore (gnu@cygnus.com)
+
+ * am29k-tdep.c (_initialize_29k): Make it possible for the
+ user to set and query the address where function calls into the
+ inferior write a small scratch routine. `set call_scratch_address'
+ * inferior.h (PC_IN_CALL_DUMMY): Fix fencepost error.
+ * remote.c (remote_prepare_to_store): Only fetch regs if they are
+ not already cached validly.
+
Thu Oct 1 14:36:42 1992 K. Richard Pixley (rich@sendai.cygnus.com)
Rs6000 native support.
void
_initialize_29k()
{
+ extern CORE_ADDR text_end;
+
add_com ("reginv ", class_obscure, reginv_com,
"Invalidate gdb's internal register cache.");
Attempts to access registers saved above this address will be ignored\n\
or will produce the value -1.", &setlist),
&showlist);
+
+ /* FIXME, there should be a way to make a CORE_ADDR variable settable. */
+ add_show_from_set
+ (add_set_cmd ("call_scratch_address", class_support, var_uinteger,
+ (char *)&text_end,
+"Set address in memory where small amounts of RAM can be used when\n\
+making function calls into the inferior.", &setlist),
+ &showlist);
}
extern void
terminal_init_inferior PARAMS ((void));
-/* From infptrace.c or procfs.c */
+/* From infptrace.c */
extern int
attach PARAMS ((int));
/* From procfs.c */
-#ifdef USE_PROC_FS
-
extern int
proc_iterate_over_mappings PARAMS ((int (*) (int, CORE_ADDR)));
-extern int
-proc_wait PARAMS ((int *));
-
-extern void
-inferior_proc_init PARAMS ((int));
-
extern void
proc_signal_handling_change PARAMS ((void));
-extern void
-proc_set_exec_trap PARAMS ((void));
+/* From fork-child.c */
-#endif
+extern void
+fork_inferior PARAMS ((char *, char *, char **,
+ void (*) (void),
+ void (*) (int)));
/* From inflow.c */
extern CORE_ADDR text_end;
#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
((pc) >= text_end - CALL_DUMMY_LENGTH \
- && (pc) < text_end + DECR_PC_AFTER_BREAK)
+ && (pc) <= text_end + DECR_PC_AFTER_BREAK)
#else /* Not before text_end. */
#if CALL_DUMMY_LOCATION == AFTER_TEXT_END
extern CORE_ADDR text_end;
#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
((pc) >= text_end \
- && (pc) < text_end + CALL_DUMMY_LENGTH + DECR_PC_AFTER_BREAK)
+ && (pc) <= text_end + CALL_DUMMY_LENGTH + DECR_PC_AFTER_BREAK)
#else /* On stack. */
#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
((sp) INNER_THAN (pc) && (pc) INNER_THAN (frame_address))
unsigned char *p;
int i;
long regno;
- unsigned char regs[MAX_REGISTER_RAW_SIZE];
+ char regs[MAX_REGISTER_RAW_SIZE];
WSETEXIT ((*status), 0);
static void
remote_prepare_to_store ()
{
- remote_fetch_registers (-1);
+ /* Make sure the entire registers array is valid. */
+ read_register_bytes (0, (char *)NULL, REGISTER_BYTES);
}
/* Store the remote registers from the contents of the block REGISTERS.
NULL, /* to_lookup_symbol */
NULL, /* to_create_inferior */
NULL, /* to_mourn_inferior */
+ 0, /* to_can_run */
process_stratum, /* to_stratum */
NULL, /* to_next */
1, /* to_has_all_memory */