<!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>