我可以使用 vsinstr 检测 exe 文件吗?

Can I instrument an exe file using vsinstr?

我一直在尝试验证 exe 文件的代码覆盖率。为此,我尝试检测 exe 文件(不是 dll),然后检测 start/stop 覆盖率。 每个教程都只描述了 dll 的检测。 exe可以实现吗?如果是,我需要提供哪些特殊选项。

这是命令,我一直在尝试 exe:

vsinstr -coverage Test.exe

Returns 成功消息并创建另一个 exe 副本

vsperfcmd -start:coverage -output:Result.coverage

vsperfcmd -shutdown

创建输出文件成功。但是在 visual studio 中打开文件时显示错误信息: "Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom settings."

请帮忙

您的第一个命令启动探查器服务,第二个命令将其关闭(并使其写入输出)。您缺少的是 -attach 命令。

vsperfcmd -attach:PID

其中 PID 是您进程的数字 ID。

一旦你附加到一个进程,它就会开始收集覆盖率数据。做任何你需要的事情来练习你的代码,然后 运行 shutdown 命令得到你的输出。