Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent Visual Studio 2015 Update 2 to add telemetry_main_invoke_trigger?

A simple C++ console app

int main()
{
  return 0;
}

compiled in Visual Studio 2015 Update 2 adds a call to telemetry_main_invoke_trigger to both Debug and Release binaries.

enter image description here

How can I prevent this?

like image 622
magicandre1981 Avatar asked Jun 11 '16 08:06

magicandre1981


People also ask

Is Visual Studio 2015 still supported?

Visual Studio 2015 - Microsoft Lifecycle | Microsoft Learn. This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Can you download older versions of Visual Studio?

Still want an older version? Select a product below and click on the download button to log in to your Visual Studio (MSDN) subscription or join the free Dev Essentials program, to gain access to the older versions.

What is LTS in Visual Studio?

Long-Term Servicing Channel (LTSC) support The LTSC are separate release Channels based on the even-numbered minor version updates, for example, 17.0 and 17.2. For more information on Preview Channel, see Visual Studio Channels and Release Rhythm.


1 Answers

According to Microsoft’s Steve Carroll (Development Manager for the Visual C++ team), you can remove telemetry calls by adding notelemetry.obj to the command options of the linker:

enter image description here

Steve Carroll explained that this will be removed in the upcoming Update 3:

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. We plan to remove these events in Update 3. In the meantime, to remove this dependency in Update 2, you should add notelemetry.obj to your linker command line.

like image 172
magicandre1981 Avatar answered Sep 22 '22 09:09

magicandre1981