On Fri, Apr 30, 2021 at 2:02 PM Alex White <alex.wh...@oarcorp.com> wrote: > > 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();
I may be missing something, but don't you still need to end() and close() it? > 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 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel