Boston, MA 02111-1307, USA. */
#include "defs.h"
-#include "command.h"
+#include "cli/cli-decode.h"
#include "inferior.h"
#include "gdbcore.h"
#include "elf-bfd.h"
{
struct cleanup *old_chain;
char *corefilename, corefilename_buffer[40];
- asection *note_sec;
+ asection *note_sec = NULL;
bfd *obfd;
void *note_data = NULL;
int note_size = 0;
"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);
}
/*
for (sec = abfd->sections; sec; sec = sec->next)
{
if (bfd_get_section_flags (abfd, sec) & SEC_DATA ||
- strcmp (".bss", bfd_get_section_name (abfd, sec)) == 0)
+ strcmp (".bss", bfd_section_name (abfd, sec)) == 0)
{
sec_vaddr = bfd_get_section_vma (abfd, sec);
sec_size = bfd_get_section_size_before_reloc (sec);
}
}
/* Now get the top-of-heap by calling sbrk in the inferior. */
- if ((sbrk = find_function_in_inferior ("sbrk")) == NULL)
+ if (lookup_minimal_symbol ("sbrk", NULL, NULL) != NULL)
+ {
+ if ((sbrk = find_function_in_inferior ("sbrk")) == NULL)
+ return 0;
+ }
+ else if (lookup_minimal_symbol ("_sbrk", NULL, NULL) != NULL)
+ {
+ if ((sbrk = find_function_in_inferior ("_sbrk")) == NULL)
+ return 0;
+ }
+ else
return 0;
+
if ((zero = value_from_longest (builtin_type_int, (LONGEST) 0)) == NULL)
return 0;
if ((sbrk = call_function_by_hand (sbrk, 1, &zero)) == NULL)
int p_type;
/* FIXME: these constants may only be applicable for ELF. */
- if (strncmp (osec->name, "load", 4) == 0)
+ if (strncmp (bfd_section_name (obfd, osec), "load", 4) == 0)
p_type = PT_LOAD;
else
p_type = PT_NOTE;
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);
if (size == 0)
return; /* Read-only sections are marked as zero-size.
We don't have to copy their contents. */
- if (strncmp ("load", bfd_get_section_name (obfd, osec), 4) != 0)
+ if (strncmp ("load", bfd_section_name (obfd, osec), 4) != 0)
return; /* Only interested in "load" sections. */
if ((memhunk = xmalloc (size)) == NULL)