vsinstr.exe可以选择只包含需要配置文件的命名空间。
使用此选项,我可以获取vsp文件。
cl /Zi helloclass.cpp /link /Profile
vsinstr helloclass.exe /include:Fpga::*
vsperfcmd /start:trace /output:trace.vsp
helloclass
vsperfcmd /shutdown
但是,它仍然包含std::
名称空间。
我尝试使用/ exclude:std :: *,我得到的功能太多了,包括std::
函数。
可能出现什么问题?
答案 0 :(得分:1)
根据http://msdn.microsoft.com/en-us/library/ms182402%28v=vs.80%29.aspx
/include
不接受通配符,请尝试使用/exclude:std::*
编辑:尝试添加/exclude:::__*
或/exclude:__*
以摆脱以__开头的全局命名空间函数。没有对此进行测试,文档不清楚,但值得一试。
答案 1 :(得分:1)
根据VS {2010的https://msdn.microsoft.com/en-us/library/ms182402%28v=vs.100%29.aspx vsinstr.exe(以及截至2015年),代码覆盖率不支持/include
。
因此,清除结果的唯一方法是使用/exclude:std::*
。
您还可以在检测过程本身之前检查将要检测的功能,并使用/dumpfuncs
选项节省您的时间,如下所示:
vsinstr.exe /dumpfuncs /exclude:std::* /exclude:`std::* > foo.txt