Это просто проблема синхронизации.
Команда start vsperfmon /coverage /output:run.coverage
запускает vsperfmon.exe в отдельном процессе.
Одновременно ваш сценарий продолжает выполняться hello
.Если hello
действительно простая программа, возможно, она выполняется и завершается до того, как vsperfmon.exe будет запущен и полностью инициализирован.Если ваш сценарий достигнет vsperfcmd /shutdown
до того, как монитор будет запущен, вы получите сообщение об ошибке.
vsperfcmd
- это просто контроллер / средство запуска для vsperfmon
, так что вы можете использовать этотолько в вашем пакетном файле:
cl /Zi hello.cpp -link /Profile
vsinstr -coverage hello.exe
vsperfcmd /start:coverage /output:run.coverage
hello
vsperfcmd /shutdown
В этом случае первый вызов vsperfcmd
будет блокироваться до тех пор, пока монитор не заработает и не заработает полностью.