diff options
author | Chris Johns <chrisj@rtems.org> | 2018-05-11 14:24:11 +1200 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2018-06-18 12:26:16 +1000 |
commit | 881824f766937a47fb494f97f4ebcd44c99135cc (patch) | |
tree | 0af3d9422ba8e0eae6df8458cc08d4aafacff301 /tester/covoar/CoverageReaderQEMU.cc | |
parent | linkers/exe-info: Add DWARF support to gather and check producer details. (diff) | |
download | rtems-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.cc | 55 |
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 ); } } |