aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2007-06-20 18:32:10 +0000
committerH.J. Lu <hjl.tools@gmail.com>2007-06-20 18:32:10 +0000
commit52b572086640c9f87e7947fcb3bbd0c6b0bb9d70 (patch)
tree8db334860d919d831e4e05fd72a44ac5b257155c /gdb
parent25c909f1e284a5111024513b92cb513e7f90f763 (diff)
downloadgdb-52b572086640c9f87e7947fcb3bbd0c6b0bb9d70.zip
gdb-52b572086640c9f87e7947fcb3bbd0c6b0bb9d70.tar.gz
gdb-52b572086640c9f87e7947fcb3bbd0c6b0bb9d70.tar.bz2
2007-06-20 H.J. Lu <hongjiu.lu@intel.com>
PR 4606 * gcore.c (gcore_command): Use bfd_make_section_anyway_with_flags instead of bfd_make_section_anyway. (gcore_create_callback): Likewise. Also set SEC_NEVER_LOAD when clearing SEC_LOAD.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/gcore.c11
2 files changed, 14 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d3f42de..ef274fa 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2007-06-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR 4606
+ * gcore.c (gcore_command): Use bfd_make_section_anyway_with_flags
+ instead of bfd_make_section_anyway.
+ (gcore_create_callback): Likewise. Also set SEC_NEVER_LOAD
+ when clearing SEC_LOAD.
+
2007-06-19 Joseph Myers <joseph@codesourcery.com>
* arm-tdep.c (arm_push_dummy_call): Correct padding of partial
diff --git a/gdb/gcore.c b/gdb/gcore.c
index 3ab9f96..b4c2635 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -88,14 +88,15 @@ gcore_command (char *args, int from_tty)
/* Create the note section. */
if (note_data != NULL && note_size != 0)
{
- note_sec = bfd_make_section_anyway (obfd, "note0");
+ note_sec = bfd_make_section_anyway_with_flags (obfd, "note0",
+ SEC_HAS_CONTENTS
+ | SEC_READONLY
+ | SEC_ALLOC);
if (note_sec == NULL)
error (_("Failed to create 'note' section for corefile: %s"),
bfd_errmsg (bfd_get_error ()));
bfd_set_section_vma (obfd, note_sec, 0);
- bfd_set_section_flags (obfd, note_sec,
- SEC_HAS_CONTENTS | SEC_READONLY | SEC_ALLOC);
bfd_set_section_alignment (obfd, note_sec, 0);
bfd_set_section_size (obfd, note_sec, note_size);
}
@@ -359,6 +360,7 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size,
&& !(bfd_get_file_flags (abfd) & BFD_IN_MEMORY))
{
flags &= ~SEC_LOAD;
+ flags |= SEC_NEVER_LOAD;
goto keep; /* break out of two nested for loops */
}
}
@@ -372,7 +374,7 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size,
else
flags |= SEC_DATA;
- osec = bfd_make_section_anyway (obfd, "load");
+ osec = bfd_make_section_anyway_with_flags (obfd, "load", flags);
if (osec == NULL)
{
warning (_("Couldn't make gcore segment: %s"),
@@ -389,7 +391,6 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size,
bfd_set_section_size (obfd, osec, size);
bfd_set_section_vma (obfd, osec, vaddr);
bfd_section_lma (obfd, osec) = 0; /* ??? bfd_set_section_lma? */
- bfd_set_section_flags (obfd, osec, flags);
return 0;
}