summaryrefslogtreecommitdiffstats
path: root/tester/covoar/covoar.cc
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2018-08-06 09:41:08 +1000
committerChris Johns <chrisj@rtems.org>2018-08-07 09:11:29 +1000
commit99c90b3353bf5b638dcfd87803e4aaf02adf3219 (patch)
tree06261fff19936db1f0db82383d02ba9eb2e75ed8 /tester/covoar/covoar.cc
parentlinkers/exeinfo: Add an inlines report and DWARF data dump. (diff)
downloadrtems-tools-99c90b3353bf5b638dcfd87803e4aaf02adf3219.tar.bz2
tester/covoar: Integrate DWARF function data.
Use DAWRF function data to create the executable coverage maps. Integrate the existing objdump processing with this data. - Refactor CoverageMapBase to have the address ranges and address info as separate objects. Move the to address info into a vector. Add support for multiple address ranges. - DesiredSymbols is only interested in function symbols. - ExecutableInfo creates coverage maps from DWARF function data. - Add warning flags to the covoar build. - Varous C++11 refactoring.
Diffstat (limited to 'tester/covoar/covoar.cc')
-rw-r--r--tester/covoar/covoar.cc20
1 files changed, 8 insertions, 12 deletions
diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc
index 6e06071..36c24c3 100644
--- a/tester/covoar/covoar.cc
+++ b/tester/covoar/covoar.cc
@@ -247,10 +247,12 @@ int covoar(
if (!coverageFileNames.empty()) {
if (dynamicLibrary) {
executableInfo = new Coverage::ExecutableInfo(
- singleExecutable, dynamicLibrary
+ singleExecutable, dynamicLibrary, Verbose
);
} else {
- executableInfo = new Coverage::ExecutableInfo( singleExecutable );
+ executableInfo = new Coverage::ExecutableInfo(
+ singleExecutable, nullptr, Verbose
+ );
}
executablesToAnalyze.push_back( executableInfo );
@@ -272,7 +274,9 @@ int covoar(
std::cerr << "warning: Unable to read coverage file: " << coverageFileName
<< std::endl;
} else {
- executableInfo = new Coverage::ExecutableInfo( argv[i] );
+ executableInfo = new Coverage::ExecutableInfo(
+ argv[i], nullptr, Verbose
+ );
executablesToAnalyze.push_back( executableInfo );
coverageFileNames.push_back( coverageFileName );
}
@@ -573,15 +577,7 @@ int main(
}
catch (std::exception e)
{
- int status;
- char* realname;
- realname = abi::__cxa_demangle (e.what(), 0, 0, &status);
- std::cerr << "error: exception: " << realname << " [";
- ::free (realname);
- const std::type_info &ti = typeid (e);
- realname = abi::__cxa_demangle (ti.name(), 0, 0, &status);
- std::cerr << realname << "] " << e.what () << std::endl << std::flush;
- ::free (realname);
+ rld::output_std_exception(e, std::cerr);
ec = 11;
}
catch (...)