On Wed, 19 Feb 2020 at 22:51, Vijay Kumar Banerjee <vijaykumar9...@gmail.com> wrote: > > > > On Mon, Feb 17, 2020 at 12:08 AM Bran S <archsb...@gmail.com> wrote: >> >> Hi Guys, >> > Hi Bran! >> >> I am trying to understand and solve Ticket #3515. >> https://devel.rtems.org/ticket/3515 >> >> $ /home/user45/quick-start/rtems/5/share/rtems/tester/bin/covoar -vvvv >> -S >> /home/user45/quick-start/rtems/5/share/rtems/tester/rtems/testing/coverage/leon3-sis-symbols.ini >> -O leon3-sis-coverage -E >> /home/user45/quick-start/rtems/5/share/rtems/tester/rtems/testing/coverage/Explanations.txt >> -p RTEMS-5 >> /home/user45/quick-start/build/b-leon3/sparc-rtems5/c/leon3/testsuites/fstests/fsclose01.exe >> >> The output of the above command is at: >> https://gist.github.com/archsbran/7834a931d52311c7b26842c6325d8d9a >> >> On the last line it can be seen that absence of `wait` symbol causes the >> error. >> >> I made some changes in ExecutableInfo.cc to print out the symbols >> being added into coverageMap. >> Added symbols can be seen from line 636 to 7236 at the above link. >> In those lines we can see that `wait` is not added into coverageMap. >> > Great work in finding the possible issue. >> >> I am new so the only thing I know about covoar is that it does >> coverage analysis. >> Any ideas on how to move further into solving this ? > > I added Chris in CC, he'll be able to tell us where to look for the source > of the error you found. > In general, you can follow covoar.cc file, which has the main `covoar` > function in it. That will be a good starting point. >
Yeah, I traversed through the code in covoar.cc It goes something like: In covoar.cc: covar() at line 382: objdumpProcessor->load( exe, objdumpFile, err ); Here, `exe` points to the executableinfo object, the one in which the coverageMap was created via createCoverageMap() Now inside objdumpProcessor->load() at line 301: finalizeSymbol() is called which further calls findCoverageMap() at line 35. This is the point where error occurs, as `wait` symbol is not found. The objdumpProcessor->load() function searches symbols in CoverageMap(via finalizeSymbol()) according to the symbols present in objdump generated at line 291: getFile( executableInformation->getFileName(), objdumpFile, err ); The objdump is created using the executableinfo from which we loaded the symbols into CoverageMap, right ? Then is it so that the code missed out on the symbol while adding them into CoverageMap ? _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel