Index: tester/covoar/CoverageMapBase.cc
===================================================================
--- tester/covoar/CoverageMapBase.cc	(revision 6ab939e3931a4bbf8ac9bc1579d33a0f6926ef73)
+++ tester/covoar/CoverageMapBase.cc	(revision bf8e59f83bf8d520bd550c50f566bd8cbccdd88c)
@@ -8,6 +8,7 @@
 
 #include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
+
+#include <iostream>
+#include <iomanip>
 
 #include "CoverageMapBase.h"
@@ -21,19 +22,19 @@
   )
   {
-    uint32_t       a;
-    AddressRange_t range;
+    uint32_t     a;
+    AddressRange range;
 
     range.fileName    = exefileName;
     range.lowAddress  = low;
     range.highAddress = high;
-    RangeList.push_back( range );
+    Ranges.push_back( range );
 
     Size = high - low + 1;
 
-    Info = new perAddressInfo_t[ Size ];
-
-    for (a=0; a<Size; a++) {
-
-      perAddressInfo_t *i = &Info[ a ];
+    Info = new perAddressInfo[ Size ];
+
+    for (a = 0; a < Size; a++) {
+
+      perAddressInfo *i = &Info[ a ];
 
       i->isStartOfInstruction = false;
@@ -54,9 +55,9 @@
   void  CoverageMapBase::Add( uint32_t low, uint32_t high )
   {
-    AddressRange_t range;
+    AddressRange range;
 
     range.lowAddress  = low;
     range.highAddress = high;
-    RangeList.push_back( range );
+    Ranges.push_back( range );
   }
 
@@ -66,9 +67,9 @@
   )const
   {
-    AddressRange::const_iterator  itr;
-
-    for ( itr = RangeList.begin(); itr != RangeList.end(); itr++ ) {
-      if ((address >= itr->lowAddress) && (address <= itr->highAddress)){
-        *offset = address - itr->lowAddress;
+    AddressRanges::const_iterator  itr;
+
+    for ( auto& r : Ranges ) {
+      if ((address >= r.lowAddress) && (address <= r.highAddress)){
+        *offset = address - r.lowAddress;
         return true;
       }
@@ -79,33 +80,27 @@
 
 
-  void CoverageMapBase::dump( void ) const {
-
-    uint32_t          a;
-    perAddressInfo_t* entry;
-
+  void CoverageMapBase::dump( void ) const
+  {
     fprintf( stderr, "Coverage Map Contents:\n" );
-
     /*
      * XXX - Dump is only marking the first Address Range.
      */
-
-    for (a = 0; a < Size; a++) {
-
-      entry = &Info[ a ];
-
-      fprintf(
-        stderr,
-        "0x%x - isStartOfInstruction = %s, wasExecuted = %s\n",
-        a + RangeList.front().lowAddress,
-        entry->isStartOfInstruction ? "TRUE" : "FALSE",
-        entry->wasExecuted ? "TRUE" : "FALSE"
-      );
-      fprintf(
-        stderr,
-        "           isBranch = %s, wasTaken = %s, wasNotTaken = %s\n",
-        entry->isBranch ? "TRUE" : "FALSE",
-        entry->wasTaken ? "TRUE" : "FALSE",
-        entry->wasNotTaken ? "TRUE" : "FALSE"
-      );
+    for (uint32_t a = 0; a < Size; a++) {
+      perAddressInfo* entry = &Info[ a ];
+      std::cerr << std::hex << std::setfill('0')
+                << "0x" << a + Ranges.front().lowAddress
+                << "- isStartOfInstruction:"
+                << (char*) (entry->isStartOfInstruction ? "yes" : "no")
+                << " wasExecuted:"
+                << (char*) (entry->wasExecuted ? "yes" : "no")
+                << std::endl
+                << "           isBranch:"
+                << (char*) (entry->isBranch ? "yes" : "no")
+                << " wasTaken:"
+                << (char*) (entry->wasTaken ? "yes" : "no")
+                << " wasNotTaken:"
+                << (char*) (entry->wasNotTaken ? "yes" : "no")
+                << std::dec << std::setfill(' ')
+                << std::endl;
     }
   }
@@ -116,7 +111,7 @@
   ) const
   {
-    bool           status = false;
-    uint32_t       start;
-    AddressRange_t range;
+    bool         status = false;
+    uint32_t     start;
+    AddressRange range;
 
 
@@ -142,15 +137,13 @@
   int32_t CoverageMapBase::getFirstLowAddress() const
   {
-    return RangeList.front().lowAddress;
-  }
-
-  bool CoverageMapBase::getRange( uint32_t address, AddressRange_t *range ) const
-  {
-    AddressRange::const_iterator  itr;
-
-    for ( itr = RangeList.begin(); itr != RangeList.end(); itr++ ) {
-      if ((address >= itr->lowAddress) && (address <= itr->highAddress)){
-        range->lowAddress = itr->lowAddress;
-        range->highAddress = itr->highAddress;
+    return Ranges.front().lowAddress;
+  }
+
+  bool CoverageMapBase::getRange( uint32_t address, AddressRange *range ) const
+  {
+    for ( auto r : Ranges ) {
+      if ((address >= r.lowAddress) && (address <= r.highAddress)){
+        range->lowAddress = r.lowAddress;
+        range->highAddress = r.highAddress;
         return true;
       }
Index: tester/covoar/CoverageMapBase.h
===================================================================
--- tester/covoar/CoverageMapBase.h	(revision 6ab939e3931a4bbf8ac9bc1579d33a0f6926ef73)
+++ tester/covoar/CoverageMapBase.h	(revision bf8e59f83bf8d520bd550c50f566bd8cbccdd88c)
@@ -24,8 +24,8 @@
     /*!
      *  This structure identifies the low and high addresses
-     *  of one range.  Note:: There may be more than one address 
+     *  of one range.  Note:: There may be more than one address
      *  range per symbol.
      */
-    typedef struct {
+    struct AddressRange {
       /*!
        *  This is the file from which this originated.
@@ -43,13 +43,12 @@
       uint32_t highAddress;
 
-    } AddressRange_t;
+    };
 
     /*
      *  This type identifies a list of ranges.
      */
-    typedef std::list< AddressRange_t > 	  AddressRange;
-    typedef std::list< AddressRange_t >::iterator AddressRangeIterator_t;
-
-    /*! 
+    typedef std::list< AddressRange >  AddressRanges;
+
+    /*!
      *  This method constructs a CoverageMapBase instance.
      *
@@ -64,5 +63,5 @@
     );
 
-    /*! 
+    /*!
      *  This method destructs a CoverageMapBase instance.
      */
@@ -74,11 +73,11 @@
      *  @param[in]  Low specifies the lowAddress
      *  @param[in]  High specifies the highAddress
-     *  
+     *
      */
     void Add( uint32_t low, uint32_t high );
- 
+
     /*!
      *  This method returns true and sets the offset if
-     *  the address falls with the bounds of an address range 
+     *  the address falls with the bounds of an address range
      *  in the RangeList.
      *
@@ -86,5 +85,5 @@
      *  @param[out] offset contains the offset from the low
      *              address of the address range.
-     *  
+     *
      *  @return Returns TRUE if the address range can be found
      *   and FALSE if it was not.
@@ -108,5 +107,5 @@
     /*!
      *  This method returns true and sets the address range if
-     *  the address falls with the bounds of an address range 
+     *  the address falls with the bounds of an address range
      *  in the RangeList.
      *
@@ -114,13 +113,13 @@
      *  @param[out] range contains the high and low addresse for
      *              the range
-     *  
+     *
      *  @return Returns TRUE if the address range can be found
      *   and FALSE if it was not.
      */
-    bool getRange( uint32_t address, AddressRange_t *range ) const;
+    bool getRange( uint32_t address, AddressRange *range ) const;
 
     /*!
      *  This method returns the size of the address range.
-     * 
+     *
      *  @return Returns Size of the address range.
      */
@@ -135,5 +134,5 @@
      *  @param[out] beginning contains the address of the beginning of
      *              the instruction.
-     *  
+     *
      *  @return Returns TRUE if the beginning of the instruction was
      *   found and FALSE if it was not.
@@ -192,5 +191,5 @@
      *
      *  @param[in] address specifies the address to check
-     *  
+     *
      *  @return Returns TRUE if the instruction at the specified
      *   address was executed and FALSE otherwise.
@@ -214,5 +213,5 @@
      *
      *  @param[in] address specifies the address to check
-     *  
+     *
      *  @return Returns number of executins
      */
@@ -366,5 +365,5 @@
      *  tracked per address.
      */
-    typedef struct {
+    struct perAddressInfo {
       /*!
        *  This member indicates that the address is the start of
@@ -394,14 +393,14 @@
        */
       uint32_t wasNotTaken;
-    } perAddressInfo_t;
-
-    /*!
-     * 
+    };
+
+    /*!
+     *
      *  This is a list of address ranges for this symbolic address.
      */
-    AddressRange RangeList;
-
-    /*!
-     *  
+    AddressRanges Ranges;
+
+    /*!
+     *
      *  This variable contains the size of the code block.
      */
@@ -412,5 +411,5 @@
      *  kept for each address.
      */
-    perAddressInfo_t* Info;
+    perAddressInfo* Info;
   };
 
Index: tester/covoar/ExecutableInfo.cc
===================================================================
--- tester/covoar/ExecutableInfo.cc	(revision 6ab939e3931a4bbf8ac9bc1579d33a0f6926ef73)
+++ tester/covoar/ExecutableInfo.cc	(revision bf8e59f83bf8d520bd550c50f566bd8cbccdd88c)
@@ -32,4 +32,5 @@
     debug.begin(executable.elf());
     debug.load_debug();
+    debug.load_functions();
   }
 
@@ -90,5 +91,4 @@
   }
 
-
   SymbolTable* ExecutableInfo::getSymbolTable ( void )
   {
@@ -103,6 +103,6 @@
   )
   {
-    CoverageMapBase                        *theMap;
-    ExecutableInfo::CoverageMaps::iterator  itr;
+    CoverageMapBase        *theMap;
+    CoverageMaps::iterator  itr;
 
     itr = coverageMaps.find( symbolName );
