VSInstr не выполняет ИСКЛЮЧЕНИЯ (VS2010)

#c #visual-studio-2010 #instrumentation

#c #visual-studio-2010 #инструментарий

Вопрос:

Я в растерянности. Наши модульные тесты инструментируются VSInstr, а затем профилируются PerfMon (покрытие кода). У нас есть обширный список исключений, которые мы используем:

 /EXCLUDE:"boost::*"
/EXCLUDE:"ATL::*"
/EXCLUDE:"UnitTestNamespace::*"
/EXCLUDE:"cppunit::*"
  

…и т.д…

Когда выполняются наши модульные тесты, файл покрытия кода предоставляет нам список всего нашего кода, плюс все пространства имен и классы, которые были исключены. VSInstr не сгенерировал ошибок. Мы компилируем наши модульные тесты с флагом компоновщика /PROFILE.

Кто-нибудь сталкивался с этой проблемой раньше?

РЕДАКТИРОВАТЬ: я попытался исключить только ATL :: , но он все еще включал его. Итак, моя теория о том, что командная строка была слишком длинной, оказалась неверной.

Комментарии:

1. Редактор stackoverflow проанализировал астриксы. Они располагаются после оператора области видимости ::.

2. Отображается лучше, если вы форматируете его как код.

Ответ №1:

В нашем нет символов кавычек, например,

 %vsinstr% <someDLL> @CPPCoverageExcludes.txt
  

где CPPCoverageExcludes.txt выглядит так:

 /exclude:std::*
/exclude:ATL::*
...
/exclude:_com_error::*
/exclude:_com_issue_error::*
/exclude:_com_issue_errorex::*
/exclude:_com_raise_error::*