X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fcore-sol2.c;h=3ce9cd460d0c67725993267cd234aa451eef9b96;hb=2f09097b734af8840d2141a26a53b9c67e67fcf2;hp=9e07c35b2277fc8092e9045b401a9740470a856e;hpb=fa803dc60f0bf01297674c41d001798e18ade4dc;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/core-sol2.c b/gdb/core-sol2.c index 9e07c35b22..3ce9cd460d 100644 --- a/gdb/core-sol2.c +++ b/gdb/core-sol2.c @@ -1,21 +1,22 @@ /* Machine independent support for Solaris 2 core files for GDB. Copyright 1994 Free Software Foundation, Inc. -This file is part of GDB. + This file is part of GDB. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ /* Solaris comes with two flavours of core files, cores generated by @@ -26,10 +27,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ and sparc-nat.c to be able to read both flavours. */ #include "defs.h" -#undef gregset_t -#undef fpregset_t - #include +#include #include #include #include @@ -64,15 +63,15 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr) { #define gregs ((struct regs *)core_reg_sect) /* G0 *always* holds 0. */ - *(int *)®isters[REGISTER_BYTE (0)] = 0; + *(int *) ®isters[REGISTER_BYTE (0)] = 0; /* The globals and output registers. */ - memcpy (®isters[REGISTER_BYTE (G1_REGNUM)], &gregs->r_g1, + memcpy (®isters[REGISTER_BYTE (G1_REGNUM)], &gregs->r_g1, 15 * REGISTER_RAW_SIZE (G1_REGNUM)); - *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = gregs->r_ps; - *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = gregs->r_pc; - *(int *)®isters[REGISTER_BYTE (NPC_REGNUM)] = gregs->r_npc; - *(int *)®isters[REGISTER_BYTE (Y_REGNUM)] = gregs->r_y; + *(int *) ®isters[REGISTER_BYTE (PS_REGNUM)] = gregs->r_ps; + *(int *) ®isters[REGISTER_BYTE (PC_REGNUM)] = gregs->r_pc; + *(int *) ®isters[REGISTER_BYTE (NPC_REGNUM)] = gregs->r_npc; + *(int *) ®isters[REGISTER_BYTE (Y_REGNUM)] = gregs->r_y; /* My best guess at where to get the locals and input registers is exactly where they usually are, right above @@ -82,9 +81,9 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr) { int sp; - sp = *(int *)®isters[REGISTER_BYTE (SP_REGNUM)]; + sp = *(int *) ®isters[REGISTER_BYTE (SP_REGNUM)]; if (0 != target_read_memory (sp, - ®isters[REGISTER_BYTE (L0_REGNUM)], + ®isters[REGISTER_BYTE (L0_REGNUM)], 16 * REGISTER_RAW_SIZE (L0_REGNUM))) { warning ("couldn't read input and local registers from core file\n"); @@ -117,15 +116,17 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr) } } } - + /* Register that we are able to handle solaris core file formats. */ static struct core_fns solaris_core_fns = { - bfd_target_elf_flavour, - fetch_core_registers, - NULL + bfd_target_elf_flavour, /* core_flavour */ + default_check_format, /* check_format */ + default_core_sniffer, /* core_sniffer */ + fetch_core_registers, /* core_read_registers */ + NULL /* next */ }; void