summaryrefslogtreecommitdiffstats
path: root/tester/covoar/CoverageReaderQEMU.cc
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2018-05-11 14:24:11 +1200
committerChris Johns <chrisj@rtems.org>2018-06-18 12:26:16 +1000
commit881824f766937a47fb494f97f4ebcd44c99135cc (patch)
tree0af3d9422ba8e0eae6df8458cc08d4aafacff301 /tester/covoar/CoverageReaderQEMU.cc
parentlinkers/exe-info: Add DWARF support to gather and check producer details. (diff)
downloadrtems-tools-881824f766937a47fb494f97f4ebcd44c99135cc.tar.bz2
tester/covoar: Remove all exit() calls and throw an rld::error exception.
Add a suitable catch to covoar's main.
Diffstat (limited to 'tester/covoar/CoverageReaderQEMU.cc')
-rw-r--r--tester/covoar/CoverageReaderQEMU.cc55
1 files changed, 17 insertions, 38 deletions
diff --git a/tester/covoar/CoverageReaderQEMU.cc b/tester/covoar/CoverageReaderQEMU.cc
index 37718ec..3d3b50f 100644
--- a/tester/covoar/CoverageReaderQEMU.cc
+++ b/tester/covoar/CoverageReaderQEMU.cc
@@ -9,8 +9,11 @@
#include <stdio.h>
#include <stdlib.h>
+#include <stdio.h>
#include <sys/stat.h>
+#include <rld.h>
+
#include "app_common.h"
#include "CoverageReaderQEMU.h"
#include "CoverageMap.h"
@@ -48,57 +51,33 @@ namespace Coverage {
uint8_t notTaken;
uint8_t branchInfo;
- taken = TargetInfo->qemuTakenBit();
- notTaken = TargetInfo->qemuNotTakenBit();
+ taken = TargetInfo->qemuTakenBit();
+ notTaken = TargetInfo->qemuNotTakenBit();
branchInfo = taken | notTaken;
//
// Open the coverage file and read the header.
//
- traceFile = OPEN( file, "r" );
+ traceFile = ::OPEN( file, "r" );
if (!traceFile) {
- fprintf(
- stderr,
- "ERROR: CoverageReaderQEMU::processFile - Unable to open %s\n",
- file
- );
- exit( -1 );
+ std::ostringstream what;
+ what << "Unable to open " << file;
+ throw rld::error( what, "CoverageReaderQEMU::processFile" );
}
- status = fread( &header, sizeof(trace_header), 1, traceFile );
+ status = ::fread( &header, sizeof(trace_header), 1, traceFile );
if (status != 1) {
- fprintf(
- stderr,
- "ERROR: CoverageReaderQEMU::processFile - "
- "Unable to read header from %s\n",
- file
- );
- exit( -1 );
+ ::fclose( traceFile );
+ std::ostringstream what;
+ what << "Unable to read header from " << file;
+ throw rld::error( what, "CoverageReaderQEMU::processFile" );
}
- #if 0
- fprintf(
- stderr,
- "magic = %s\n"
- "version = %d\n"
- "kind = %d\n"
- "sizeof_target_pc = %d\n"
- "big_endian = %d\n"
- "machine = %02x:%02x\n",
- header.magic,
- header.version,
- header.kind,
- header.sizeof_target_pc,
- header.big_endian,
- header.machine[0], header.machine[1]
- );
- #endif
-
//
// Read ENTRIES number of trace entries.
//
#define ENTRIES 1024
- while (1) {
+ while (true) {
CoverageMapBase *aCoverageMap = NULL;
struct trace_entry entries[ENTRIES];
struct trace_entry *entry;
@@ -106,7 +85,7 @@ namespace Coverage {
// Read and process each line of the coverage file.
- num_entries = fread(
+ num_entries = ::fread(
entries,
sizeof(struct trace_entry),
ENTRIES,
@@ -149,6 +128,6 @@ namespace Coverage {
}
}
}
- fclose( traceFile );
+ ::fclose( traceFile );
}
}