Желтенько. Все ни раз наблюдали, как "подвисшая" программа предлагала отправить отчет об ошибке, при этом можно было бы задуматься, что содержится в этом отчете, откуда эта информация там взялась и куда вообще хочет отправиться. Сбором подобного рода информации, как раз и занимается та пресловутая телеметрия, которую разработчик может использовать в собственных целях для анализа работы, а может смело на неё забить.
А как ОС может влиять на инструкции компилятора? Компилятор суть обыкновенная программа, со своим жестким набором инструкций. Ты ей код, а на выходе исполняемый файл. У VS же фишка именно на максимальное упрощение разработки и как следствие, использование по максимуму возможностей ОС. MS очень хочется в серьезный мобильный сегмент, а в нем главное универсальность, что бы специалист мог больше внимания уделять коду и серьезно не заботиться об особенностях аппаратной платформы.
Подробный разбор, чего там куда пишется:[censored]
Что мы имеем в итоге?
- В любом бинарнике, скомпилированном VS2015 из программы на C или C++, есть код, который может писать логи. (зануда-mode: если не предпринимать специальных усилий по отключению стандартной библиотеки. Впрочем, если на Си ещё можно писать без неё, то на C++ — только до первого исключения)
- Логи куцые, там нет ничего особенно интересного, что система и без того бы не знала. Можно различить случаи "main() штатно вернула управление" и «кто-то вызвал exit или abort», но это скорее интересно разработчику для отладки. Параноики могут расслабиться.
- Но сам прецедент интересный.
- По умолчанию логи никуда не пишутся. Их нужно включать специально. Однако, команда включения может вообще ничего не знать ни о программе, ни о предметной области (ни logman, ни tracerpt не в курсе о конкретном Microsoft.CRTProvider — вся структура логов выше пишется вместе с логами).
Причем тут упрощение разработки? Компилятор в исполняемый файл пихает код, которого там не должно быть. И к отчетам об ошибках он не имеет никакого отношения
VS, если её поставить из коробки и не заморачиваясь начать писать, в исполняемый файл будет тебе пихать очень много чего ты не просил, и на 100 строк кода выдаст тебе экзешник весом в десяток мегабайт. Это как бы не новость, о причинах я писал выше, добавить к ним нечего. Причем так повелось не с десятой Win, а еще когда пошла переориентация с COM на .NET
нафига микрософту встраивать вредоносный код в программу которая работает под виндой от микрософта?
Вся винда итак один большой кусок вредоносного кода :)