pull across kcore_fetch_registers() from gnu/dist/gdb/sparcnbsd-nat.c, and

add kcore-nbsd.c to NATDEPFILES in nbsd{,elf}.mh.  regen defs.mk and init.c.

pity kcore-nbsd.c isn't in the FSF tree yet...
This commit is contained in:
mrg 2002-02-10 01:32:56 +00:00
parent 654b815d7b
commit e694f74c6e
5 changed files with 66 additions and 5 deletions

View File

@ -2,5 +2,5 @@
XDEPFILES= ser-tcp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparcnbsd-nat.o solib.o
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o kcore-nbsd.o sparcnbsd-nat.o solib.o
HOST_IPC=-DBSD_IPC

View File

@ -2,5 +2,5 @@
XDEPFILES= ser-tcp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsdelf.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparcnbsd-nat.o solib.o
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o kcore-nbsd.o sparcnbsd-nat.o solib.o
HOST_IPC=-DBSD_IPC

View File

@ -340,3 +340,61 @@ _initialize_sparcnbsd_nat ()
add_core_fns (&sparcnbsd_core_fns);
add_core_fns (&sparcnbsd_elfcore_fns);
}
/*
* kernel_u_size() is not helpful on NetBSD because
* the "u" struct is NOT in the core dump file.
*/
#ifdef FETCH_KCORE_REGISTERS
/*
* Get registers from a kernel crash dump or live kernel.
* Called by kcore-nbsd.c:get_kcore_registers().
*/
void
fetch_kcore_registers (pcb)
struct pcb *pcb;
{
struct rwindow win;
int i;
u_long sp;
/* We only do integer registers */
sp = pcb->pcb_sp;
supply_register(SP_REGNUM, (char *)&pcb->pcb_sp);
supply_register(PC_REGNUM, (char *)&pcb->pcb_pc);
supply_register(O7_REGNUM, (char *)&pcb->pcb_pc);
supply_register(PS_REGNUM, (char *)&pcb->pcb_psr);
supply_register(WIM_REGNUM, (char *)&pcb->pcb_wim);
/*
* Read last register window saved on stack.
*/
if (target_read_memory(sp, (char *)&win, sizeof win)) {
printf("cannot read register window at sp=%x\n", pcb->pcb_sp);
bzero((char *)&win, sizeof win);
}
for (i = 0; i < sizeof(win.rw_local); ++i)
supply_register(i + L0_REGNUM, (char *)&win.rw_local[i]);
for (i = 0; i < sizeof(win.rw_in); ++i)
supply_register(i + I0_REGNUM, (char *)&win.rw_in[i]);
/*
* read the globals & outs saved on the stack (for a trap frame).
*/
sp += 92 + 12; /* XXX - MINFRAME + R_Y */
for (i = 1; i < 14; ++i) {
u_long val;
if (target_read_memory(sp + i*4, (char *)&val, sizeof val) == 0)
supply_register(i, (char *)&val);
}
#if 0
if (kvread(pcb.pcb_cpctxp, &cps) == 0)
supply_register(CPS_REGNUM, (char *)&cps);
#endif
/* The kernel does not use the FPU, so ignore it. */
registers_fetched ();
}
#endif /* FETCH_KCORE_REGISTERS */

View File

@ -1,7 +1,8 @@
# This file is automatically generated. DO NOT EDIT!
# Generated from: NetBSD: toolchain2netbsd,v 1.12 2001/08/14 05:17:59 tv Exp
# Generated from: NetBSD: toolchain2netbsd,v 1.14 2002/01/22 13:13:00 mrg Exp
#
G_INTERNAL_CFLAGS=-g -O2 -I. -I${DIST}/gdb -I${DIST}/gdb/config -DHAVE_CONFIG_H -I${DIST}/gdb/../include/opcode -I${DIST}/gdb/../readline/.. -I../bfd -I${DIST}/gdb/../bfd -I${DIST}/gdb/../include -I../intl -I${DIST}/gdb/../intl -I${DIST}/gdb/tui -DUSE_INCLUDED_REGEX
G_LIBGDB_OBS=version.o blockframe.o breakpoint.o findvar.o stack.o thread.o source.o values.o eval.o valops.o valarith.o valprint.o printcmd.o symtab.o symfile.o symmisc.o infcmd.o infrun.o command.o expprint.o environ.o event-loop.o event-top.o inf-loop.o gdbarch.o arch-utils.o gdbtypes.o copying.o sparc-tdep.o ser-tcp.o ser-unix.o ser-pipe.o fork-child.o infptrace.o inftarg.o corelow.o sparcnbsd-nat.o solib.o remote.o dcache.o remote-utils.o tracepoint.o ax-general.o ax-gdb.o mem-break.o target.o parse.o language.o c-exp.tab.o jv-exp.tab.o f-exp.tab.o m2-exp.tab.o buildsym.o kod.o kod-cisco.o gdb-events.o exec.o bcache.o objfiles.o minsyms.o maint.o demangle.o dbxread.o coffread.o elfread.o dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o c-lang.o ch-exp.o ch-lang.o f-lang.o ui-out.o cli-out.o varobj.o wrapper.o jv-lang.o jv-valprint.o jv-typeprint.o m2-lang.o scm-exp.o scm-lang.o scm-valprint.o complaints.o typeprint.o c-typeprint.o ch-typeprint.o f-typeprint.o m2-typeprint.o c-valprint.o cp-valprint.o ch-valprint.o f-valprint.o m2-valprint.o nlmread.o serial.o mdebugread.o os9kread.o top.o utils.o ui-file.o tui-file.o annotate.o inflow.o gnu-regex.o init.o
G_LIBGDB_OBS=version.o blockframe.o breakpoint.o findvar.o stack.o thread.o source.o values.o eval.o valops.o valarith.o valprint.o printcmd.o symtab.o symfile.o symmisc.o infcmd.o infrun.o command.o expprint.o environ.o event-loop.o event-top.o inf-loop.o gdbarch.o arch-utils.o gdbtypes.o copying.o sparc-tdep.o ser-tcp.o ser-unix.o ser-pipe.o fork-child.o infptrace.o inftarg.o corelow.o kcore-nbsd.o sparcnbsd-nat.o solib.o remote.o dcache.o remote-utils.o tracepoint.o ax-general.o ax-gdb.o mem-break.o target.o parse.o language.o c-exp.tab.o jv-exp.tab.o f-exp.tab.o m2-exp.tab.o buildsym.o kod.o kod-cisco.o gdb-events.o exec.o bcache.o objfiles.o minsyms.o maint.o demangle.o dbxread.o coffread.o elfread.o dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o c-lang.o ch-exp.o ch-lang.o f-lang.o ui-out.o cli-out.o varobj.o wrapper.o jv-lang.o jv-valprint.o jv-typeprint.o m2-lang.o scm-exp.o scm-lang.o scm-valprint.o complaints.o typeprint.o c-typeprint.o ch-typeprint.o f-typeprint.o m2-typeprint.o c-valprint.o cp-valprint.o ch-valprint.o f-valprint.o m2-valprint.o nlmread.o serial.o mdebugread.o os9kread.o top.o utils.o ui-file.o tui-file.o annotate.o inflow.o gnu-regex.o init.o
G_SIM_OBJS=
G_CCFLAGS=-DHAVE_CONFIG_H -I. -I${DIST}/readline -I/usr/local/include -DRL_LIBRARY_VERSION='"4.0"' -g -O2
G_OBJECTS=readline.o vi_mode.o funmap.o keymaps.o parens.o search.o rltty.o complete.o bind.o isearch.o display.o signals.o util.o kill.o undo.o macro.o input.o callback.o terminal.o nls.o xmalloc.o history.o histexpand.o histfile.o histsearch.o shell.o tilde.o

View File

@ -1,5 +1,5 @@
/* This file is automatically generated. DO NOT EDIT! */
/* Generated from: NetBSD: toolchain2netbsd,v 1.12 2001/08/14 05:17:59 tv Exp */
/* Generated from: NetBSD: toolchain2netbsd,v 1.14 2002/01/22 13:13:00 mrg Exp */
/* Do not modify this file. */
/* It is created automatically by the Makefile. */
@ -34,6 +34,7 @@ extern initialize_file_ftype _initialize_kernel_u_addr;
extern initialize_file_ftype _initialize_infptrace;
extern initialize_file_ftype _initialize_inftarg;
extern initialize_file_ftype _initialize_corelow;
extern initialize_file_ftype _initialize_kcore_nbsd;
extern initialize_file_ftype _initialize_sparcnbsd_nat;
extern initialize_file_ftype _initialize_solib;
extern initialize_file_ftype _initialize_remote;
@ -105,6 +106,7 @@ initialize_all_files (void)
_initialize_infptrace ();
_initialize_inftarg ();
_initialize_corelow ();
_initialize_kcore_nbsd ();
_initialize_sparcnbsd_nat ();
_initialize_solib ();
_initialize_remote ();