2004-01-14 Elena Zannoni <ezannoni@redhat.com>
* gcore.c (gcore_copy_callback): Use paddr_d to print size variable. (gcore_create_callback): Ditto. Skip any memory segment that has no permissions set.
This commit is contained in:
parent
895921c97e
commit
86fbe6cc79
2 changed files with 26 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2004-01-14 Elena Zannoni <ezannoni@redhat.com>
|
||||||
|
|
||||||
|
* gcore.c (gcore_copy_callback): Use paddr_d to print size
|
||||||
|
variable.
|
||||||
|
(gcore_create_callback): Ditto. Skip any memory segment that has
|
||||||
|
no permissions set.
|
||||||
|
|
||||||
2004-01-14 David Carlton <carlton@kealia.com>
|
2004-01-14 David Carlton <carlton@kealia.com>
|
||||||
|
|
||||||
Change symbols for C++ nested types to contain the fully qualified
|
Change symbols for C++ nested types to contain the fully qualified
|
||||||
|
|
24
gdb/gcore.c
24
gdb/gcore.c
|
@ -1,6 +1,6 @@
|
||||||
/* Generate a core file for the inferior process.
|
/* Generate a core file for the inferior process.
|
||||||
|
|
||||||
Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
|
Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
|
||||||
|
@ -314,6 +314,20 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size,
|
||||||
asection *osec;
|
asection *osec;
|
||||||
flagword flags = SEC_ALLOC | SEC_HAS_CONTENTS | SEC_LOAD;
|
flagword flags = SEC_ALLOC | SEC_HAS_CONTENTS | SEC_LOAD;
|
||||||
|
|
||||||
|
/* If the memory segment has no permissions set, ignore it, otherwise
|
||||||
|
when we later try to access it for read/write, we'll get an error
|
||||||
|
or jam the kernel. */
|
||||||
|
if (read == 0 && write == 0 && exec == 0)
|
||||||
|
{
|
||||||
|
if (info_verbose)
|
||||||
|
{
|
||||||
|
fprintf_filtered (gdb_stdout, "Ignore segment, %s bytes at 0x%s\n",
|
||||||
|
paddr_d (size), paddr_nz (vaddr));
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (write == 0)
|
if (write == 0)
|
||||||
{
|
{
|
||||||
/* See if this region of memory lies inside a known file on disk.
|
/* See if this region of memory lies inside a known file on disk.
|
||||||
|
@ -364,8 +378,8 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size,
|
||||||
|
|
||||||
if (info_verbose)
|
if (info_verbose)
|
||||||
{
|
{
|
||||||
fprintf_filtered (gdb_stdout, "Save segment, %lld bytes at 0x%s\n",
|
fprintf_filtered (gdb_stdout, "Save segment, %s bytes at 0x%s\n",
|
||||||
(long long) size, paddr_nz (vaddr));
|
paddr_d (size), paddr_nz (vaddr));
|
||||||
}
|
}
|
||||||
|
|
||||||
bfd_set_section_size (obfd, osec, size);
|
bfd_set_section_size (obfd, osec, size);
|
||||||
|
@ -450,8 +464,8 @@ gcore_copy_callback (bfd *obfd, asection *osec, void *ignored)
|
||||||
|
|
||||||
if (target_read_memory (bfd_section_vma (obfd, osec),
|
if (target_read_memory (bfd_section_vma (obfd, osec),
|
||||||
memhunk, size) != 0)
|
memhunk, size) != 0)
|
||||||
warning ("Memory read failed for corefile section, %ld bytes at 0x%s\n",
|
warning ("Memory read failed for corefile section, %s bytes at 0x%s\n",
|
||||||
(long) size, paddr (bfd_section_vma (obfd, osec)));
|
paddr_d (size), paddr (bfd_section_vma (obfd, osec)));
|
||||||
if (!bfd_set_section_contents (obfd, osec, memhunk, 0, size))
|
if (!bfd_set_section_contents (obfd, osec, memhunk, 0, size))
|
||||||
warning ("Failed to write corefile contents (%s).",
|
warning ("Failed to write corefile contents (%s).",
|
||||||
bfd_errmsg (bfd_get_error ()));
|
bfd_errmsg (bfd_get_error ()));
|
||||||
|
|
Loading…
Reference in a new issue