On 10/5/18 2:43 pm, Chris Johns wrote: > On 10/5/18 8:47 am, Cillian O'Donnell wrote: >> >> -------------------- >> GDB >> -------------------- >> >> (gdb) bt >> #0 0x00007ffff74aa428 in __GI_raise (sig=sig@entry=6) >> at ../sysdeps/unix/sysv/linux/raise.c:54 >> #1 0x00007ffff74ac02a in __GI_abort () at abort.c:89 >> #2 0x00007ffff7ae484d in __gnu_cxx::__verbose_terminate_handler() () >> from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #3 0x00007ffff7ae26b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #4 0x00007ffff7ae2701 in std::terminate() () >> from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #5 0x00007ffff7ae2919 in __cxa_throw () >> from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 >> #6 0x000000000042ad4a in rld::dwarf::address::path[abi:cxx11]() const ( >> this=this@entry=0x7fffffffcc10) at ../rtemstoolkit/rld-dwarf.cpp:129 >> #7 0x000000000042dfad in rld::dwarf::file::get_source >> (this=this@entry=0x6be568, >> addr=<optimized out>, source_file="unknown", >> source_line=@0x7fffffffccdc: -1) >> at ../rtemstoolkit/rld-dwarf.cpp:860 >> #8 0x000000000040d541 in Coverage::ExecutableInfo::getSourceAndLine ( >> this=this@entry=0x6be3c0, address=<optimized out>, line="") >> at ../tester/covoar/ExecutableInfo.cc:134 >> #9 0x000000000040a115 in Coverage::DesiredSymbols::determineSourceLines ( >> this=this@entry=0xafee70, theRanges=theRanges@entry=0xd626f0, >> theExecutable=0x6be3c0) at ../tester/covoar/DesiredSymbols.cc:411 >> #10 0x000000000040a24f in Coverage::DesiredSymbols::findSourceForUncovered ( >> this=0xafee70) at ../tester/covoar/DesiredSymbols.cc:440 >> #11 0x0000000000406028 in main (argc=<optimized out>, argv=<optimized out>) >> at ../tester/covoar/covoar.cc:526 > > This looks like an exception being thrown in a destructor path. >
I can reproduce this on MacOS with the hello.cov file. Thank you for it. It is not a exception in an exception or in a stack unwind path, it is an exception being thrown with no catch. The covoar `main()` is like C with return vales, stderr prints and exits or there are calls to exit in some paths taken from main. The RLD code expects a top level single catch which prints a message to stderr then exits. It is mixing this these two approaches which resulted in no catch. I am so use to not needing to think about it. Maybe I should look at main and clean it up. I also need to figure out why the address has lost it's reference to the source table. Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel