* 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.
2002-02-13 Michael Snyder <msnyder@redhat.com>
+ * 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.
"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);
}
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
{
/* 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);
}
/*
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);
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,
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))
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));
}
}