[PATCH 1/2] covoar: Store only the file name in ExecutableInfo
Alex White
alex.white at oarcorp.com
Fri Apr 9 16:13:28 UTC 2021
This changes the ExecutableInfo class to only store the executable
file's name rather than an entire instance of rld::files::object. This
allows the rld::files::object to be cleaned up in the ExecutableInfo
constructor.
Updates #4383
---
tester/covoar/ExecutableInfo.cc | 12 +++++-------
tester/covoar/ExecutableInfo.h | 10 +++++-----
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc
index fc368ce..861e60d 100644
--- a/tester/covoar/ExecutableInfo.cc
+++ b/tester/covoar/ExecutableInfo.cc
@@ -21,7 +21,7 @@ namespace Coverage {
const char* const theExecutableName,
const char* const theLibraryName,
bool verbose
- ) : executable(theExecutableName),
+ ) : fileName(theExecutableName),
loadAddress(0)
{
if (theLibraryName != nullptr)
@@ -34,6 +34,8 @@ namespace Coverage {
std::cerr << std::endl;
}
+ rld::files::object executable(theExecutableName);
+
executable.open();
executable.begin();
executable.load_symbols(symbols);
@@ -82,8 +84,6 @@ namespace Coverage {
}
} catch (...) {
debug.end();
- executable.end();
- executable.close();
throw;
}
@@ -95,8 +95,6 @@ namespace Coverage {
ExecutableInfo::~ExecutableInfo()
{
debug.end();
- executable.end();
- executable.close();
}
void ExecutableInfo::dumpCoverageMaps( void ) {
@@ -132,9 +130,9 @@ namespace Coverage {
return aCoverageMap;
}
- const std::string ExecutableInfo::getFileName ( void ) const
+ const std::string& ExecutableInfo::getFileName ( void ) const
{
- return executable.name().full();
+ return fileName;
}
const std::string ExecutableInfo::getLibraryName( void ) const
diff --git a/tester/covoar/ExecutableInfo.h b/tester/covoar/ExecutableInfo.h
index d5ccb19..5d5a595 100644
--- a/tester/covoar/ExecutableInfo.h
+++ b/tester/covoar/ExecutableInfo.h
@@ -77,7 +77,7 @@ namespace Coverage {
*
* @return Returns the executable's file name
*/
- const std::string getFileName( void ) const;
+ const std::string& getFileName( void ) const;
/*!
* This method returns the library name associated with the executable.
@@ -158,14 +158,14 @@ namespace Coverage {
);
/*!
- * The ELF executable.
+ * The DWARF data to the ELF executable.
*/
- rld::files::object executable;
+ rld::dwarf::file debug;
/*!
- * The DWARF data to the ELF executable.
+ * The executable's file name.
*/
- rld::dwarf::file debug;
+ std::string fileName;
/*!
* The executable's symbol table.
--
2.27.0
More information about the devel
mailing list