It's not just Windows 10 that has telemetry issues -- Microsoft has done the same with Visual Studio 2015 C++ compiler
An eagle-eyed Reddit user has noticed that code run through Visual Studio 2015 C++ compiler make calls to Microsoft's telemetry services. Microsoft has already upset a large number of people with the privacy and telemetry issues in Windows 10, and there is now a busy thread on Reddit discussing the company's thinking behind including this 'feature'.
Coders have expressed concerns that Microsoft appears to be inserting calls to its telemetry service into binaries as they are compiled. Calls to
telemetry_main_return_trigger raised a few eyebrows having been found in both debug and release versions of the software. The good news -- maybe -- is that telemetry can be disabled.
Over on Reddit, user sammiesdog triggered an active discussion following his discovery. It prompted a response from Steve Carroll, Development Manager for the Visual C++ team, who insists that the inclusion of the telemetry function is entirely innocent. Despite this, he says that it will be remove when Update 3 is released. The software is currently on Update 2.
Innocent or not, users were spooked by the fact that the existence of the functions was not referenced in any documentation. Carroll responded to Redditors, saying:
Our intent was benign -- our desire was to build a framework that will help investigate performance problems and improve the quality of our optimizer should we get any reports of slowdowns or endemic perf problems in the field.
We apologize for raising the suspicion levels even further by not including the CRT source, this was just an oversight on our part. Despite that, some of you already investigated how this mechanism works in nice detail. As you have already called out, what the code does is trigger an ETW event which, when it’s turned on, will emit timestamps and module loads events. The event data can only be interpreted if a customer gives us symbol information (i.e. PDBs) so this data is only applicable to customers that are actively seeking help from us and are willing to share these PDBs as part of their investigation. We haven’t actually gone through this full exercise with any customers to date though, and we are so far relying on our established approaches to investigate and address potential problems instead.
Carroll stepped up to the plate and offered a workaround for those concerned about the telemetry feature:
To remove this dependency in Update 2, you should add
notelemetry.objto your linker command line.
While it's good to see Microsoft responding to feedback and acting on user concern, it is still worrying that the compiler includes undocumented elements. As one Redditor puts it, the situation does have a "We got caught. We'll roll back this one" feel to it.