<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for gcc-testing (2010-05-11)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>humph</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-11 Glenn Humphrey

        * DesiredSymbols.cc, ObjdumpProcessor.cc: Due to differences in nops
        used for alignment, had to move the trimming of trailing nops to the
        objdump processing.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.219&r2=text&tr2=1.220&diff_format=h">M</a></td><td width='1%'>1.220</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/DesiredSymbols.cc.diff?r1=text&tr1=1.8&r2=text&tr2=1.9&diff_format=h">M</a></td><td width='1%'>1.9</td><td width='100%'>rtems-coverage/DesiredSymbols.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ObjdumpProcessor.cc.diff?r1=text&tr1=1.31&r2=text&tr2=1.32&diff_format=h">M</a></td><td width='1%'>1.32</td><td width='100%'>rtems-coverage/ObjdumpProcessor.cc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.219 gcc-testing/rtems-coverage/ChangeLog:1.220
--- gcc-testing/rtems-coverage/ChangeLog:1.219  Tue May 11 15:18:32 2010
+++ gcc-testing/rtems-coverage/ChangeLog        Tue May 11 16:08:57 2010
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2010-05-11    Glenn Humphrey
+
+       * DesiredSymbols.cc, ObjdumpProcessor.cc: Due to differences in nops
+       used for alignment, had to move the trimming of trailing nops to the
+       objdump processing.
+
</font> 2010-05-11        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * DesiredSymbols.cc, Makefile, ObjdumpProcessor.cc, TargetBase.cc,

<font color='#006600'>diff -u gcc-testing/rtems-coverage/DesiredSymbols.cc:1.8 gcc-testing/rtems-coverage/DesiredSymbols.cc:1.9
--- gcc-testing/rtems-coverage/DesiredSymbols.cc:1.8    Tue May 11 15:18:32 2010
+++ gcc-testing/rtems-coverage/DesiredSymbols.cc        Tue May 11 16:08:57 2010
</font><font color='#997700'>@@ -108,10 +108,9 @@
</font> 
   void DesiredSymbols::preprocess( void )
   {
<font color='#880000'>-    ObjdumpProcessor::objdumpLines_t::iterator         fitr;
-    ObjdumpProcessor::objdumpLines_t::reverse_iterator itr;
-    DesiredSymbols::symbolSet_t::iterator              sitr;
-    CoverageMapBase*                                   theCoverageMap;
</font><font color='#000088'>+    ObjdumpProcessor::objdumpLines_t::iterator fitr;
+    DesiredSymbols::symbolSet_t::iterator      sitr;
+    CoverageMapBase*                           theCoverageMap;
</font> 
     // Look at each symbol.
     for (sitr = SymbolsToAnalyze->set.begin();
<font color='#997700'>@@ -124,27 +123,6 @@
</font>       if (!theCoverageMap)
         continue;
 
<font color='#880000'>-      // Mark any trailing nops as executed.  Some targets use nops to
-      // force alignment of the next method but still include the nops
-      // in the symbol size.
-      //
-      // Mark all branches as isBranch.
-      //
-      // NOTE: If nop's are used for alignment inside a method, this<span style="background-color: #FF0000"> </span>
-      //       will not mark them!!!
-      for (itr = sitr->second.instructions.rbegin(), itr++;
-           itr != sitr->second.instructions.rend();
-           itr++) {
-        if (itr->isNop) {
-          for ( int a=0; a < itr->nopSize ; a++ ) {
-            theCoverageMap->setWasExecuted(
-              itr->address - sitr->second.baseAddress + a
-            );
-          }
-        } else
-          break;
-      }
-
</font>       // Mark any branch instructions.
       for (fitr = sitr->second.instructions.begin();
            fitr != sitr->second.instructions.end();
<font color='#997700'>@@ -160,13 +138,12 @@
</font> 
   void DesiredSymbols::computeUncovered( void )
   {
<font color='#880000'>-    uint32_t                                           a, la, ha;
-    uint32_t                                           endAddress;
-    ObjdumpProcessor::objdumpLines_t::reverse_iterator itr;
-    DesiredSymbols::symbolSet_t::iterator              sitr;
-    CoverageRanges*                                    theBranches;
-    CoverageMapBase*                                   theCoverageMap;
-    CoverageRanges*                                    theRanges;
</font><font color='#000088'>+    uint32_t                              a, la, ha;
+    uint32_t                              endAddress;
+    DesiredSymbols::symbolSet_t::iterator sitr;
+    CoverageRanges*                       theBranches;
+    CoverageMapBase*                      theCoverageMap;
+    CoverageRanges*                       theRanges;
</font> 
     // Look at each symbol.
     for (sitr = SymbolsToAnalyze->set.begin();

<font color='#006600'>diff -u gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.31 gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.32
--- gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.31 Tue May 11 15:18:32 2010
+++ gcc-testing/rtems-coverage/ObjdumpProcessor.cc      Tue May 11 16:08:58 2010
</font><font color='#997700'>@@ -35,9 +35,51 @@
</font>     SymbolInformation*               symbolInfo
   ) {
 
<font color='#880000'>-    CoverageMapBase*                           aCoverageMap = NULL;
-    ObjdumpProcessor::objdumpLines_t::iterator itr;
-    SymbolTable*                               theSymbolTable;
</font><font color='#000088'>+    CoverageMapBase*                                   aCoverageMap = NULL;
+    uint32_t                                           endAddress = highAddress;
+    ObjdumpProcessor::objdumpLines_t::iterator         itr, fnop, lnop;
+    ObjdumpProcessor::objdumpLines_t::reverse_iterator ritr;
+    SymbolTable*                                       theSymbolTable;
+
+    //
+    // Remove trailing nop instructions.
+    //
+
+    // First find the last instruction.
+    for (ritr = instructions.rbegin();
+         ritr != instructions.rend();
+         ritr++) {
+      if (ritr->isInstruction)
+        break;
+    }
+
+    // If an instruction was found and it is a nop, ...
+    if ((ritr != instructions.rend()) && (ritr->isNop)) {
+
+      // save it as the last nop.  Note that we must account for
+      // the difference between a forward and a reverse iterator.
+      lnop = ritr.base();
+      lnop--;
+      endAddress -= lnop->nopSize;
+
+      // Now look for the first nop in the sequence of trailing nops.
+      fnop = lnop;
+      ritr++;
+      for (; ritr != instructions.rend(); ritr++) {
+        if (ritr->isNop) {
+          fnop = ritr.base();
+          fnop--;
+          endAddress -= fnop->nopSize;
+        }
+        else
+          break;
+      }
+
+      // Erase trailing nops.  The erase operation wants the first
+      // parameter to point to the first item to erase and the second
+      // parameter to point to the item beyond the last item to erase.
+      instructions.erase( fnop, ++lnop );
+    }
</font> 
     // If there are NOT already saved instructions, save them.
     if (symbolInfo->instructions.empty()) {
<font color='#997700'>@@ -49,12 +91,12 @@
</font>     // Add the symbol to this executable's symbol table.
     theSymbolTable = executableInfo->getSymbolTable();
     theSymbolTable->addSymbol(
<font color='#880000'>-      symbolName, lowAddress, highAddress - lowAddress + 1
</font><font color='#000088'>+      symbolName, lowAddress, endAddress - lowAddress + 1
</font>     );
 
     // Create a coverage map for the symbol.
     aCoverageMap = executableInfo->createCoverageMap(
<font color='#880000'>-      symbolName, lowAddress, highAddress
</font><font color='#000088'>+      symbolName, lowAddress, endAddress
</font>     );
 
     if (aCoverageMap) {
<font color='#997700'>@@ -69,7 +111,7 @@
</font> 
       // Create a unified coverage map for the symbol.
       SymbolsToAnalyze->createCoverageMap(
<font color='#880000'>-        symbolName, highAddress - lowAddress + 1
</font><font color='#000088'>+        symbolName, endAddress - lowAddress + 1
</font>       );
     }
   }
<font color='#997700'>@@ -240,7 +282,8 @@
</font>     bool               processSymbol = false;
     char               symbol[ 100 ];
     SymbolInformation* symbolInformation = NULL;
<font color='#880000'>-    char               terminator;
</font><font color='#000088'>+    char               terminator1;
+    char               terminator2;
</font>     objdumpLines_t     theInstructions;
 
     // Obtain the objdump file.
<font color='#997700'>@@ -259,7 +302,7 @@
</font>             executableInformation,
             currentSymbol,
             baseAddress,
<font color='#880000'>-            address,  // XXX fix to determine corrent end address
</font><font color='#000088'>+            address,  // XXX fix to determine correct end address
</font>             theInstructions,
             symbolInformation
           );
<font color='#997700'>@@ -289,11 +332,11 @@
</font>       items = sscanf(
         buffer,
         "%x <%[^>]>%c",
<font color='#880000'>-        &address, symbol, &terminator
</font><font color='#000088'>+        &address, symbol, &terminator1
</font>       );
 
       // If all items found, we are at the beginning of a symbol's objdump.
<font color='#880000'>-      if ((items == 3) && (terminator == ':')) {
</font><font color='#000088'>+      if ((items == 3) && (terminator1 == ':')) {
</font> 
         // If we are currently processing a symbol, finalize it.
         if ((processSymbol) && (symbolInformation)) {
<font color='#997700'>@@ -329,12 +372,12 @@
</font>         // See if it is the dump of an instruction.
         items = sscanf(
           buffer,
<font color='#880000'>-          "%x%c",
-          &instructionAddress, &terminator
</font><font color='#000088'>+          "%x%c\t%*[^\t]%c",
+          &instructionAddress, &terminator1, &terminator2
</font>         );
 
         // If it looks like an instruction ...
<font color='#880000'>-        if ((items == 2) && (terminator == ':')) {
</font><font color='#000088'>+        if ((items == 3) && (terminator1 == ':') && (terminator2 == '\t')) {
</font> 
           // update the line's information, save it and ...
           lineInfo.address       = instructionAddress;
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>humph</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-11 Glenn Humphrey

        * ReportsBase.cc: Fixed buffer overflow problem.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.220&r2=text&tr2=1.221&diff_format=h">M</a></td><td width='1%'>1.221</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ReportsBase.cc.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>rtems-coverage/ReportsBase.cc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.220 gcc-testing/rtems-coverage/ChangeLog:1.221
--- gcc-testing/rtems-coverage/ChangeLog:1.220  Tue May 11 16:08:57 2010
+++ gcc-testing/rtems-coverage/ChangeLog        Tue May 11 16:09:53 2010
</font><font color='#997700'>@@ -1,5 +1,9 @@
</font> 2010-05-11        Glenn Humphrey
 
<font color='#000088'>+   * ReportsBase.cc: Fixed buffer overflow problem.
+
+2010-05-11     Glenn Humphrey
+
</font>   * DesiredSymbols.cc, ObjdumpProcessor.cc: Due to differences in nops
        used for alignment, had to move the trimming of trailing nops to the
        objdump processing.

<font color='#006600'>diff -u gcc-testing/rtems-coverage/ReportsBase.cc:1.6 gcc-testing/rtems-coverage/ReportsBase.cc:1.7
--- gcc-testing/rtems-coverage/ReportsBase.cc:1.6       Tue May 11 14:44:52 2010
+++ gcc-testing/rtems-coverage/ReportsBase.cc   Tue May 11 16:09:53 2010
</font><font color='#997700'>@@ -173,7 +173,7 @@
</font>       uint32_t     id = 0;
       std::string  annotation = "";
       std::string  line;
<font color='#880000'>-      char         textLine[100];
</font><font color='#000088'>+      char         textLine[150];
</font> 
       state = A_SOURCE;
 
</pre>
<p> </p>
<a name='cs3'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-11 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * DesiredSymbols.cc, Makefile, ObjdumpProcessor.cc, TargetBase.cc,
        TargetBase.h, TraceConverter.cc, app_common.cc, app_common.h,
        covmerge.cc, covoar.cc: Merge Toolname into Target.
        * Toolnames.cc, Toolnames.h: Removed.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.218&r2=text&tr2=1.219&diff_format=h">M</a></td><td width='1%'>1.219</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/DesiredSymbols.cc.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>rtems-coverage/DesiredSymbols.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/Makefile.diff?r1=text&tr1=1.20&r2=text&tr2=1.21&diff_format=h">M</a></td><td width='1%'>1.21</td><td width='100%'>rtems-coverage/Makefile</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ObjdumpProcessor.cc.diff?r1=text&tr1=1.30&r2=text&tr2=1.31&diff_format=h">M</a></td><td width='1%'>1.31</td><td width='100%'>rtems-coverage/ObjdumpProcessor.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TargetBase.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>rtems-coverage/TargetBase.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TargetBase.cc.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>rtems-coverage/TargetBase.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/Toolnames.h?rev=1.6&content-type=text/vnd.viewcvs-markup">R</a></td><td width='1%'><font color="#880000">1.6</font></td><td width='100%'><font color="#880000">rtems-coverage/Toolnames.h</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/Toolnames.cc?rev=1.9&content-type=text/vnd.viewcvs-markup">R</a></td><td width='1%'><font color="#880000">1.9</font></td><td width='100%'><font color="#880000">rtems-coverage/Toolnames.cc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TraceConverter.cc.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>rtems-coverage/TraceConverter.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/app_common.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>rtems-coverage/app_common.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/app_common.cc.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>rtems-coverage/app_common.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/covmerge.cc.diff?r1=text&tr1=1.17&r2=text&tr2=1.18&diff_format=h">M</a></td><td width='1%'>1.18</td><td width='100%'>rtems-coverage/covmerge.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/covoar.cc.diff?r1=text&tr1=1.18&r2=text&tr2=1.19&diff_format=h">M</a></td><td width='1%'>1.19</td><td width='100%'>rtems-coverage/covoar.cc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.218 gcc-testing/rtems-coverage/ChangeLog:1.219
--- gcc-testing/rtems-coverage/ChangeLog:1.218  Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/ChangeLog        Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -1,5 +1,12 @@
</font> 2010-05-11        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
<font color='#000088'>+   * DesiredSymbols.cc, Makefile, ObjdumpProcessor.cc, TargetBase.cc,
+       TargetBase.h, TraceConverter.cc, app_common.cc, app_common.h,
+       covmerge.cc, covoar.cc: Merge Toolname into Target.
+       * Toolnames.cc, Toolnames.h: Removed.
+
+2010-05-11     Joel Sherrill <joel.sherrilL@OARcorp.com>
+
</font>   * CoverageReaderQEMU.cc, ObjdumpProcessor.cc, ObjdumpProcessor.h,
        TargetBase.cc, TargetBase.h, TraceConverter.cc, TraceWriterQEMU.cc,
        app_common.cc, app_common.h, covoar.cc, qemu-traces.h: Allow each

<font color='#006600'>diff -u gcc-testing/rtems-coverage/DesiredSymbols.cc:1.7 gcc-testing/rtems-coverage/DesiredSymbols.cc:1.8
--- gcc-testing/rtems-coverage/DesiredSymbols.cc:1.7    Tue May 11 13:17:33 2010
+++ gcc-testing/rtems-coverage/DesiredSymbols.cc        Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -371,7 +371,7 @@
</font>     sprintf(
       command,
       "%s -e %s <%s | dos2unix >%s",
<font color='#880000'>-      Tools->getAddr2line(),
</font><font color='#000088'>+      TargetInfo->getAddr2line(),
</font>       executableFileName.c_str(),
       "ranges1.tmp",
       "ranges2.tmp"

<font color='#006600'>diff -u gcc-testing/rtems-coverage/Makefile:1.20 gcc-testing/rtems-coverage/Makefile:1.21
--- gcc-testing/rtems-coverage/Makefile:1.20    Fri May  7 13:01:51 2010
+++ gcc-testing/rtems-coverage/Makefile Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -37,7 +37,6 @@
</font>   Target_m68k.o  \
   Target_powerpc.o \
   Target_sparc.o \
<font color='#880000'>-  Toolnames.o<span style="background-color: #FF0000"> </span>
</font> 
 TRACECONVERTER_OBJS = \
   $(COMMON_OBJS) \
<font color='#997700'>@@ -134,7 +133,6 @@
</font> Target_m68k.o: Target_m68k.cc Target_m68k.h TargetBase.h
 Target_powerpc.o: Target_powerpc.cc Target_powerpc.h TargetBase.h
 Target_sparc.o: Target_sparc.cc Target_sparc.h TargetBase.h
<font color='#880000'>-Toolnames.o: Toolnames.cc Toolnames.h
</font> 
 TraceConverter.o: TraceConverter.cc TraceReaderBase.h TraceList.h
 TraceList.o: TraceList.cc TraceList.h

<font color='#006600'>diff -u gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.30 gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.31
--- gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.30 Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/ObjdumpProcessor.cc      Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -140,7 +140,7 @@
</font>       sprintf(
         buffer,
         "%s -da --section=.text --source %s | sed -e \'s/ *$//\' >%s",
<font color='#880000'>-        Tools->getObjdump(),
</font><font color='#000088'>+        TargetInfo->getObjdump(),
</font>          exeFileName.c_str(),
         dumpFile
       );

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TargetBase.h:1.3 gcc-testing/rtems-coverage/TargetBase.h:1.4
--- gcc-testing/rtems-coverage/TargetBase.h:1.3 Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/TargetBase.h     Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -29,8 +29,12 @@
</font> 
     /*!
      *  This method constructs an TargetBase instance.
<font color='#000088'>+     *
+     *  @param[in] targetName specifies the desired target
</font>      */
<font color='#880000'>-    TargetBase( std::string targetName );
</font><font color='#000088'>+    TargetBase(
+      std::string targetName
+    );
</font> 
     /*!
      *  This method destructs an TargetBase instance.
<font color='#997700'>@@ -38,6 +42,41 @@
</font>     virtual ~TargetBase();
 
     /*!
<font color='#000088'>+     *  This method returns the program name for addr2line.
+     *
+     *  @return Returns the target specific addr2line program name
+     */
+    const char* getAddr2line( void ) const;
+
+    /*!
+     *  This method returns the CPU name.
+     *
+     *  @return Returns the target cpu name
+     */
+    const char* getCPU( void ) const;
+
+    /*!
+     *  This method returns the program name for nm.
+     *
+     *  @return Returns the target specific nm program name
+     */
+    const char* getNm( void ) const;
+
+    /*!
+     *  This method returns the program name for objdump.
+     *
+     *  @return Returns the target specific objdump program name
+     */
+    const char* getObjdump( void ) const;
+
+    /*!
+     *  This method returns the target name.
+     *
+     *  @return Returns the target name
+     */
+    const char* getTarget( void ) const;
+
+    /*!
</font>      *  This method determines whether the specified line from a<span style="background-color: #FF0000"> </span>
      *  objdump file is a nop instruction.
      *
<font color='#997700'>@@ -111,6 +150,31 @@
</font>      * for this target.
      */
     std::list <std::string> branchInstructions;
<font color='#000088'>+
+  private:
+
+    /*!
+     * This member variable contains the name of the host program
+     * which reports the source line for the specified program address.
+     */
+    std::string addr2line_m;
+
+    /*!
+     * This member variable contains the name of the target cpu architecture.
+     */
+    std::string cpu_m;
+
+    /*!
+     * This member variable contains the name of the host program
+     * which produces a symbol table.
+     */
+    std::string nm_m;
+
+    /*!
+     * This member variable contains the name of the host program
+     * which disassembles an executable or library.
+     */
+    std::string objdump_m;
</font>   };
 }
 #endif

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TargetBase.cc:1.5 gcc-testing/rtems-coverage/TargetBase.cc:1.6
--- gcc-testing/rtems-coverage/TargetBase.cc:1.5        Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/TargetBase.cc    Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -22,12 +22,51 @@
</font>   ):
     targetName_m( targetName )
   {
<font color='#000088'>+    int i;
+    std::string front = "";
+
+    for (i=0 ; targetName_m[i] && targetName_m[i] != '-' ; ) {
+      cpu_m[i]   = targetName_m[i];
+      cpu_m[++i] = '\0';
+    }
+    if (targetName_m[i] == '-')
+      front = targetName_m + "-";
+
+
+    addr2line_m = front + "addr2line";
+    nm_m        = front + "nm";
+    objdump_m   = front + "objdump";
</font>   }
 
   TargetBase::~TargetBase()
   {
   }
 
<font color='#000088'>+  const char* TargetBase::getAddr2line() const
+  {
+    return addr2line_m.c_str();
+  }
+
+  const char* TargetBase::getCPU( void ) const
+  {
+    return cpu_m.c_str();
+  }
+
+  const char* TargetBase::getNm() const
+  {
+    return nm_m.c_str();
+  }
+
+  const char* TargetBase::getObjdump() const
+  {
+    return objdump_m.c_str();
+  }
+
+  const char* TargetBase::getTarget( void ) const
+  {
+    return targetName_m.c_str();
+  }
+
</font>   bool TargetBase::isBranch(
       const char* const instruction
   )

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TraceConverter.cc:1.6 gcc-testing/rtems-coverage/TraceConverter.cc:1.7
--- gcc-testing/rtems-coverage/TraceConverter.cc:1.6    Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/TraceConverter.cc        Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -20,7 +20,6 @@
</font> #include "TraceWriterQEMU.h"
 #include "TraceList.h"
 #include "ObjdumpProcessor.h"
<font color='#880000'>-#include "Toolnames.h"
</font> #include "app_common.h"
 #include "TargetFactory.h"
 
<font color='#997700'>@@ -82,7 +81,6 @@
</font>   }
 
   // Create toolnames.
<font color='#880000'>-  Tools = new Coverage::Toolnames( cpuname );
</font>   TargetInfo = Target::TargetFactory( cpuname );
 
   objdumpProcessor = new Coverage::ObjdumpProcessor();

<font color='#006600'>diff -u gcc-testing/rtems-coverage/app_common.h:1.9 gcc-testing/rtems-coverage/app_common.h:1.10
--- gcc-testing/rtems-coverage/app_common.h:1.9 Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/app_common.h     Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -9,13 +9,11 @@
</font> 
 #include "DesiredSymbols.h"
 #include "Explanations.h"
<font color='#880000'>-#include "Toolnames.h"
</font> #include "TargetBase.h"
 
 extern Coverage::Explanations*      AllExplanations;
 extern Coverage::ObjdumpProcessor*  objdumpProcessor;
 extern Coverage::DesiredSymbols*    SymbolsToAnalyze;
<font color='#880000'>-extern Coverage::Toolnames*         Tools;
</font> extern bool                         Verbose;
 extern const char*                  outputDirectory;
 extern bool                         BranchInfoAvailable;

<font color='#006600'>diff -u gcc-testing/rtems-coverage/app_common.cc:1.5 gcc-testing/rtems-coverage/app_common.cc:1.6
--- gcc-testing/rtems-coverage/app_common.cc:1.5        Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/app_common.cc    Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -11,7 +11,6 @@
</font> 
 #include "app_common.h"
 #include "DesiredSymbols.h"
<font color='#880000'>-#include "Toolnames.h"
</font> #include "Explanations.h"
 
 /*
<font color='#997700'>@@ -20,7 +19,6 @@
</font> Coverage::Explanations*     AllExplanations     = NULL;
 Coverage::ObjdumpProcessor* objdumpProcessor    = NULL;
 Coverage::DesiredSymbols*   SymbolsToAnalyze    = NULL;
<font color='#880000'>-Coverage::Toolnames*        Tools               = NULL;
</font> bool                        Verbose             = false;
 const char*                 outputDirectory     = ".";
 bool                        BranchInfoAvailable = false;

<font color='#006600'>diff -u gcc-testing/rtems-coverage/covmerge.cc:1.17 gcc-testing/rtems-coverage/covmerge.cc:1.18
--- gcc-testing/rtems-coverage/covmerge.cc:1.17 Mon Feb  1 11:39:01 2010
+++ gcc-testing/rtems-coverage/covmerge.cc      Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -47,7 +47,6 @@
</font> Coverage::CoverageMapBase    *CoverageMap      = NULL;
 Coverage::CoverageReaderBase *CoverageReader   = NULL;
 Coverage::CoverageWriterBase *CoverageWriter   = NULL;
<font color='#880000'>-Coverage::Toolnames          *Tools            = NULL;
</font> Coverage::ObjdumpProcessor   *ObjdumpProcessor = NULL;
 Coverage::CoverageRanges     *Ranges           = NULL;
 Coverage::Explanations       *Explanations     = NULL;
<font color='#997700'>@@ -352,7 +351,7 @@
</font>   /*
    *  Create toolnames based on target
    */
<font color='#880000'>-  Tools = new Coverage::Toolnames( target );
</font><font color='#000088'>+  TargetInfo = Target::TargetFactory( target );
</font> 
   /*
    *  Create a ranges set

<font color='#006600'>diff -u gcc-testing/rtems-coverage/covoar.cc:1.18 gcc-testing/rtems-coverage/covoar.cc:1.19
--- gcc-testing/rtems-coverage/covoar.cc:1.18   Tue May 11 15:09:19 2010
+++ gcc-testing/rtems-coverage/covoar.cc        Tue May 11 15:18:32 2010
</font><font color='#997700'>@@ -272,7 +272,6 @@
</font>   //
 
   // Create toolnames based on target.
<font color='#880000'>-  Tools      = new Coverage::Toolnames( target );
</font>   TargetInfo = Target::TargetFactory( target );
 
   // Create the set of desired symbols.
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>