* fbsd-proc.c: Include "regcache.h", "regset.h" and
"gdb_assert.h". Con't include "gregset.h". (fbsd_make_corefile_notes): Use regset-based core file support instead off fill_gregset and fill_fpregset. * Makefile.in (fbsd-proc.o): Update dependencies.
This commit is contained in:
parent
5ca8ca7c88
commit
448724fb16
|
@ -1,5 +1,11 @@
|
|||
2004-05-30 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* fbsd-proc.c: Include "regcache.h", "regset.h" and
|
||||
"gdb_assert.h". Con't include "gregset.h".
|
||||
(fbsd_make_corefile_notes): Use regset-based core file support
|
||||
instead off fill_gregset and fill_fpregset.
|
||||
* Makefile.in (fbsd-proc.o): Update dependencies.
|
||||
|
||||
* m88k-tdep.c (m88k_analyze_prologue): Fix handling of branch
|
||||
instructions.
|
||||
(m88k_frame_prev_register): Simplify code a bit.
|
||||
|
|
|
@ -1760,7 +1760,8 @@ expprint.o: expprint.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
|
|||
$(value_h) $(language_h) $(parser_defs_h) $(user_regs_h) $(target_h) \
|
||||
$(gdb_string_h) $(block_h)
|
||||
fbsd-proc.o: fbsd-proc.c $(defs_h) $(gdbcore_h) $(inferior_h) \
|
||||
$(gdb_string_h) $(elf_bfd_h) $(gregset_h)
|
||||
$(regcache_h) $(regset_h) $(gdb_assert_h) $(gdb_string_h) \
|
||||
$(elf_bfd_h)
|
||||
f-exp.o: f-exp.c $(defs_h) $(gdb_string_h) $(expression_h) $(value_h) \
|
||||
$(parser_defs_h) $(language_h) $(f_lang_h) $(bfd_h) $(symfile_h) \
|
||||
$(objfiles_h) $(block_h)
|
||||
|
|
|
@ -22,15 +22,16 @@
|
|||
#include "defs.h"
|
||||
#include "gdbcore.h"
|
||||
#include "inferior.h"
|
||||
#include "gdb_string.h"
|
||||
#include "regcache.h"
|
||||
#include "regset.h"
|
||||
|
||||
#include "gdb_assert.h"
|
||||
#include "gdb_string.h"
|
||||
#include <sys/procfs.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "elf-bfd.h"
|
||||
|
||||
#include "gregset.h"
|
||||
|
||||
char *
|
||||
child_pid_to_exec_file (int pid)
|
||||
{
|
||||
|
@ -120,21 +121,35 @@ fbsd_find_memory_regions (int (*func) (CORE_ADDR, unsigned long,
|
|||
static char *
|
||||
fbsd_make_corefile_notes (bfd *obfd, int *note_size)
|
||||
{
|
||||
struct gdbarch *gdbarch = current_gdbarch;
|
||||
const struct regcache *regcache = current_regcache;
|
||||
gregset_t gregs;
|
||||
fpregset_t fpregs;
|
||||
char *note_data = NULL;
|
||||
Elf_Internal_Ehdr *i_ehdrp;
|
||||
const struct regset *regset;
|
||||
size_t size;
|
||||
|
||||
/* Put a "FreeBSD" label in the ELF header. */
|
||||
i_ehdrp = elf_elfheader (obfd);
|
||||
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
|
||||
|
||||
fill_gregset (&gregs, -1);
|
||||
gdb_assert (gdbarch_regset_from_core_section_p (gdbarch));
|
||||
|
||||
size = sizeof gregs;
|
||||
regset = gdbarch_regset_from_core_section (gdbarch, ".reg", size);
|
||||
gdb_assert (regset && regset->collect_regset);
|
||||
regset->collect_regset (regset, regcache, -1, &gregs, size);
|
||||
|
||||
note_data = elfcore_write_prstatus (obfd, note_data, note_size,
|
||||
ptid_get_pid (inferior_ptid),
|
||||
stop_signal, &gregs);
|
||||
|
||||
fill_fpregset (&fpregs, -1);
|
||||
size = sizeof fpregs;
|
||||
regset = gdbarch_regset_from_core_section (gdbarch, ".reg2", size);
|
||||
gdb_assert (regset && regset->collect_regset);
|
||||
regset->collect_regset (regset, regcache, -1, &fpregs, size);
|
||||
|
||||
note_data = elfcore_write_prfpreg (obfd, note_data, note_size,
|
||||
&fpregs, sizeof (fpregs));
|
||||
|
||||
|
|
Loading…
Reference in New Issue