Forum Discussion

ted's avatar
ted
New Contributor
6 years ago

AQTime Light Coverage Profiler identifies uncovered lines with only brackets or keywords (C++)

I have some strange Light Coverage result reported by AQTime (8.71.3483.7)

It shows thats the lines containing only brackets (from if-else or try-catch blocks) and `if-else` keywords  are uncovered.

 

An exmaple code:

template<typename T>
class Klass
{
public:
  void do()
  {
    try
    {
      if ( ... )
      {
         //...
      }
      else /* this line is reported as uncovered */
      {
         //...
      }  /* this line is reported as uncovered */
    }
    catch (SomeEx&)
    {
       //...
    }  /* this line is reported as uncovered */
    catch (SomeOtherEx&)
    {
       //...
    }  /* this line is reported as uncovered */
  }
};

The whole code is actually covered but the report shows such lines uncovered.

is it expected behavour?

How can I get rid of it?

 

thanks

 

  • ted's avatar
    ted
    6 years ago

    thanks AlexKaras, it was a good hint.

     

    Indeed, I did run Coverage Profiler with none-Release configuration in MSVC.

    Without /O options MSVC would generate unreachable jmp instructions for such `else` or `bracket` lines.

    It is not wrong but just not nice with MSVC for none-optimzed code generation. Example instruction code generation without /O and with /O options

     

    I assume that AQTime profiler just traces if generated instructions are executed or not. That is why I get this strange result.