summaryrefslogtreecommitdiffstats
path: root/rtemstoolkit
diff options
context:
space:
mode:
authorAlex White <alex.white@oarcorp.com>2021-04-30 14:34:18 -0500
committerJoel Sherrill <joel@rtems.org>2021-06-17 16:00:08 -0500
commitac56fce7c17e40c6ecd7980fa828a76550bbacb3 (patch)
treee59a7e98baa63d8ac08a9265f5b8c9dd6d58efde /rtemstoolkit
parentcovoar: Store only the file name in ExecutableInfo (diff)
downloadrtems-tools-ac56fce7c17e40c6ecd7980fa828a76550bbacb3.tar.bz2
covoar: Store address-to-line info outside of DWARF
This adds the AddressToLineMapper class and supporting classes to assume responsibility of tracking address-to-line information. This allows the DWARF library to properly cleanup all of its resources and leads to significant memory savings. Closes #4383
Diffstat (limited to 'rtemstoolkit')
-rw-r--r--rtemstoolkit/rld-dwarf.cpp5
-rw-r--r--rtemstoolkit/rld-dwarf.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/rtemstoolkit/rld-dwarf.cpp b/rtemstoolkit/rld-dwarf.cpp
index 2fce0e4..1eae50c 100644
--- a/rtemstoolkit/rld-dwarf.cpp
+++ b/rtemstoolkit/rld-dwarf.cpp
@@ -1893,6 +1893,11 @@ namespace rld
return false;
}
+ const addresses& compilation_unit::get_addresses () const
+ {
+ return addr_lines_;
+ }
+
functions&
compilation_unit::get_functions ()
{
diff --git a/rtemstoolkit/rld-dwarf.h b/rtemstoolkit/rld-dwarf.h
index 1210813..eadb50d 100644
--- a/rtemstoolkit/rld-dwarf.h
+++ b/rtemstoolkit/rld-dwarf.h
@@ -708,6 +708,11 @@ namespace rld
unsigned int pc_high () const;
/**
+ * The addresses associated with this compilation unit.
+ */
+ const addresses& get_addresses () const;
+
+ /**
* Get the source and line for an address. If the address does not match
* false is returned the file is set to 'unknown' and the line is set to
* 0.