This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[pushed] [ARM] Store exception handling information per-bfd instead of per-obj...
- From: "Sourceware to Gerrit sync (Code Review)" <gerrit at gnutoolchain-gerrit dot osci dot io>
- To: Luis Machado <luis dot machado at linaro dot org>, gdb-patches at sourceware dot org
- Cc: Simon Marchi <simon dot marchi at polymtl dot ca>
- Date: Thu, 31 Oct 2019 15:34:07 -0400
- Subject: [pushed] [ARM] Store exception handling information per-bfd instead of per-obj...
- Auto-submitted: auto-generated
- References: <gerrit.1572452333000.Ia7b3208ea8d788414600fa6d770ac76db0562859@gnutoolchain-gerrit.osci.io>
- Reply-to: noreply at gnutoolchain-gerrit dot osci dot io, simon dot marchi at polymtl dot ca, luis dot machado at linaro dot org, gdb-patches at sourceware dot org
Sourceware to Gerrit sync has submitted this change.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/448
......................................................................
[ARM] Store exception handling information per-bfd instead of per-objfile
Based on feedback from Tromey, update the use of objfile_key in gdb/arm-tdep.c
to use bfd_key instead. That way we don't have to re-create the exception
handling data all over again if it was done before for the same BFD.
gdb/ChangeLog:
2019-10-31 Luis Machado <luis.machado@linaro.org>
* arm-tdep.c (arm_exidx_data_key): Use bfd_key instead of
objfile_key.
(arm_exidx_new_objfile): Adjust to use objfile->obfd instead of
objfile to fetch per-bfd data.
(arm_find_exidx_entry): Likewise.
Change-Id: Ia7b3208ea8d788414600fa6d770ac76db0562859
---
M gdb/ChangeLog
M gdb/arm-tdep.c
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ee48133..7abe20e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2019-10-31 Luis Machado <luis.machado@linaro.org>
+
+ * arm-tdep.c (arm_exidx_data_key): Use bfd_key instead of
+ objfile_key.
+ (arm_exidx_new_objfile): Adjust to use objfile->obfd instead of
+ objfile to fetch per-bfd data.
+ (arm_find_exidx_entry): Likewise.
+
2019-10-31 Christian Biesinger <cbiesinger@google.com>
* gdbsupport/agent.c (debug_agent): Change type to bool.
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 8694618..48772d7 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -1999,7 +1999,8 @@
std::vector<std::vector<arm_exidx_entry>> section_maps;
};
-static const struct objfile_key<arm_exidx_data> arm_exidx_data_key;
+/* Per-BFD key to store exception handling information. */
+static const struct bfd_key<arm_exidx_data> arm_exidx_data_key;
static struct obj_section *
arm_obj_section_from_vma (struct objfile *objfile, bfd_vma vma)
@@ -2043,7 +2044,7 @@
LONGEST i;
/* If we've already touched this file, do nothing. */
- if (!objfile || arm_exidx_data_key.get (objfile) != NULL)
+ if (!objfile || arm_exidx_data_key.get (objfile->obfd) != NULL)
return;
/* Read contents of exception table and index. */
@@ -2074,7 +2075,7 @@
}
/* Allocate exception table data structure. */
- data = arm_exidx_data_key.emplace (objfile);
+ data = arm_exidx_data_key.emplace (objfile->obfd);
data->section_maps.resize (objfile->obfd->section_count);
/* Fill in exception table. */
@@ -2246,7 +2247,7 @@
struct arm_exidx_data *data;
struct arm_exidx_entry map_key = { memaddr - obj_section_addr (sec), 0 };
- data = arm_exidx_data_key.get (sec->objfile);
+ data = arm_exidx_data_key.get (sec->objfile->obfd);
if (data != NULL)
{
std::vector<arm_exidx_entry> &map
--
Gerrit-Project: binutils-gdb
Gerrit-Branch: master
Gerrit-Change-Id: Ia7b3208ea8d788414600fa6d770ac76db0562859
Gerrit-Change-Number: 448
Gerrit-PatchSet: 2
Gerrit-Owner: Luis Machado <luis.machado@linaro.org>
Gerrit-Reviewer: Luis Machado <luis.machado@linaro.org>
Gerrit-Reviewer: Simon Marchi <simon.marchi@polymtl.ca>
Gerrit-MessageType: merged