From 6dbdc4a3629d75a46908c071d8caba9e66da03ab Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Thu, 14 Feb 2002 01:57:36 +0000 Subject: [PATCH] 2002-02-13 Michael Snyder * gcore.c (gcore_command): Use gcore_default_target instead of NULL. (default_gcore_mach): Just return 0, work around a problem in bfd. (default_gcore_target): OK to return NULL if exec_bfd is null. (make_mem_sec): Use a cast, avoid a warning. * procfs.c (find_memory_regions_callback): Use a cast instead of calling host_pointer_to_address (which complains if sizeof (host pointer) != sizeof (target pointer)). (procfs_make_note_section): Avoid overflow in psargs string. --- gdb/ChangeLog | 10 ++++++++++ gdb/gcore.c | 18 +++++++++++------- gdb/procfs.c | 10 +++++++--- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7787141..b8b2a3e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2002-02-13 Michael Snyder + * gcore.c (gcore_command): Use gcore_default_target instead of NULL. + (default_gcore_mach): Just return 0, work around a problem in bfd. + (default_gcore_target): OK to return NULL if exec_bfd is null. + (make_mem_sec): Use a cast, avoid a warning. + + * procfs.c (find_memory_regions_callback): Use a cast instead of + calling host_pointer_to_address (which complains if + sizeof (host pointer) != sizeof (target pointer)). + (procfs_make_note_section): Avoid overflow in psargs string. + * procfs.c (procfs_make_note_section): Make the default implementation return an error. diff --git a/gdb/gcore.c b/gdb/gcore.c index 56c1da4..494efad 100644 --- a/gdb/gcore.c +++ b/gdb/gcore.c @@ -63,7 +63,7 @@ gcore_command (char *args, int from_tty) "Opening corefile '%s' for output.\n", corefilename); /* Open the output file. */ - if (!(obfd = bfd_openw (corefilename, NULL /*default_gcore_target ()*/))) + if (!(obfd = bfd_openw (corefilename, default_gcore_target ()))) { error ("Failed to open '%s' for output.", corefilename); } @@ -117,16 +117,20 @@ gcore_command (char *args, int from_tty) static unsigned long default_gcore_mach (void) { +#if 1 /* See if this even matters... */ + return 0; +#else #ifdef TARGET_ARCHITECTURE const struct bfd_arch_info * bfdarch = TARGET_ARCHITECTURE; if (bfdarch != NULL) return bfdarch->mach; -#endif +#endif /* TARGET_ARCHITECTURE */ if (exec_bfd == NULL) error ("Can't find default bfd machine type (need execfile)."); return bfd_get_mach (exec_bfd); +#endif /* 1 */ } static enum bfd_architecture @@ -149,9 +153,9 @@ default_gcore_target (void) { /* FIXME -- this may only work for ELF targets. */ if (exec_bfd == NULL) - error ("Can't find default bfd target for corefile (need execfile)."); - - return bfd_get_target (exec_bfd); + return NULL; + else + return bfd_get_target (exec_bfd); } /* @@ -344,8 +348,8 @@ make_mem_sec (bfd *obfd, if (info_verbose) { fprintf_filtered (gdb_stdout, - "Save segment, %ld bytes at 0x%s\n", - size, paddr_nz (addr)); + "Save segment, %lld bytes at 0x%s\n", + (long long) size, paddr_nz (addr)); } bfd_set_section_size (obfd, osec, size); diff --git a/gdb/procfs.c b/gdb/procfs.c index aec61bc..55e0496 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -5388,7 +5388,7 @@ find_memory_regions_callback (struct prmap *map, void *), void *data) { - return (*func) (host_pointer_to_address ((void *) map->pr_vaddr), + return (*func) ((CORE_ADDR) map->pr_vaddr, map->pr_size, (map->pr_mflags & MA_READ) != 0, (map->pr_mflags & MA_WRITE) != 0, @@ -5793,6 +5793,7 @@ procfs_make_note_section (bfd *obfd, int *note_size) char psargs[80] = {'\0'}; procinfo *pi = find_procinfo_or_die (PIDGET (inferior_ptid), 0); char *note_data = NULL; + char *inf_args; struct procfs_corefile_thread_data thread_args; if (get_exec_file (0)) @@ -5800,11 +5801,14 @@ procfs_make_note_section (bfd *obfd, int *note_size) strncpy (fname, strrchr (get_exec_file (0), '/') + 1, sizeof (fname)); strncpy (psargs, get_exec_file (0), sizeof (psargs)); - if (get_inferior_args ()) + + inf_args = get_inferior_args (); + if (inf_args && *inf_args && + strlen (inf_args) < ((int) sizeof (psargs) - (int) strlen (psargs))) { strncat (psargs, " ", sizeof (psargs) - strlen (psargs)); - strncat (psargs, get_inferior_args (), + strncat (psargs, inf_args, sizeof (psargs) - strlen (psargs)); } } -- 2.7.4