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:
parent
654b815d7b
commit
e694f74c6e
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ();
|
||||
|
|
Loading…
Reference in New Issue