summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Long <ryan.long@oarcorp.com>2021-12-13 08:40:35 -0500
committerJoel Sherrill <joel@rtems.org>2021-12-15 10:25:39 -0600
commitc9aefbba45ec19085e6f668c3da7d617d21ce181 (patch)
tree9631a021f10406339b44807529cda34704b38ae8
parentSymbolTable.cc: Fix formatting (diff)
downloadrtems-tools-c9aefbba45ec19085e6f668c3da7d617d21ce181.tar.bz2
TraceConverter.cc: Fix Uncaught exception issue
CID 1471639: Uncaught exception Closes #4501
-rw-r--r--tester/covoar/TraceConverter.cc30
1 files changed, 27 insertions, 3 deletions
diff --git a/tester/covoar/TraceConverter.cc b/tester/covoar/TraceConverter.cc
index 8e30ae5..e393268 100644
--- a/tester/covoar/TraceConverter.cc
+++ b/tester/covoar/TraceConverter.cc
@@ -87,13 +87,37 @@ int main(
std::string tracefile;
std::string logname = "/tmp/qemu.log";
Coverage::ExecutableInfo* executableInfo;
- rld::process::tempfile objdumpFile( ".dmp" );
- rld::process::tempfile err( ".err" );
Coverage::DesiredSymbols symbolsToAnalyze;
bool verbose = false;
std::string dynamicLibrary;
int ec = 0;
std::shared_ptr<Target::TargetBase> targetInfo;
+ rld::process::tempfile *objdumpFile;
+ rld::process::tempfile *err;
+
+ try
+ {
+ objdumpFile = new rld::process::tempfile( ".dmp" );
+ }
+ catch ( rld::error re )
+ {
+ std::cerr << "Failed to make .dmp tempfile " << std::endl;
+ ec = 10;
+
+ return ec;
+ }
+
+ try
+ {
+ err = new rld::process::tempfile( ".err" );
+ }
+ catch ( rld::error re )
+ {
+ std::cerr << "Failed to make .err tempfile " << std::endl;
+ ec = 10;
+
+ return ec;
+ }
setup_signals();
@@ -195,7 +219,7 @@ int main(
try
{
- objdumpProcessor.loadAddressTable( executableInfo, objdumpFile, err );
+ objdumpProcessor.loadAddressTable( executableInfo, *objdumpFile, *err );
log.processFile( logname.c_str(), objdumpProcessor );
trace.writeFile( tracefile.c_str(), &log, verbose );
}