Privacy policy
By default, the extension collects light telemetry information about the events happening in the extension itself. This data is used to diagnose issues and understand why certain features may not be working as expected.The extension never sends any personal information or any information about your code. No source code, symbol names, or any identifiable process/user/system information is ever sent or collected. This data is never shared with any third parties.
Starting from version 1.3.6, it is possible to disable all telemetry collection by going to: Extensions -> D0 -> Telemetry -> Send telemetry data and unchecking the checkbox.
What gets collected?
The extension sends one request at the end of each debugging session in the following format:{
"client_version": "extension_version",
"m": [2,0,0,0,80,9,0,0,0,0,0,0,0,5,2,7138,0,0,0,0,2,5,0,2,2,0,0,2,0,0,0,1,0,0,0,0,118,0,7,3,0,37,0,0,0],
"c": 4,
"p": 0
}
Here's what each field means:
- client_version: the version of the extension that is seen in the extension manager (not Visual Studio version)
- m: a list of numbers, each representing how many times a certain event happened during the debug session
- c: the number of files that have been instrumented in total
- p: how many step predictions updates there have been
m
field maps counts to certain events such as live code trace updates, module loads, etc.
Many of these events are internal to how the extension works or are no longer used, but are included here for full transparency.
No content of messages is ever sent, only their counts.
This data is exclusively restricted only to things the extension does and does not include any information about the code itself or events outside of the scope of the extension.
You can inspect the whole mapping with descriptions as of current version below:
Event | Sample count | Description |
---|---|---|
SCFetchAllModules | 2 | |
SCVisualStudioToggleBreakpoints | 0 | |
SCExternalBreakpointHit | 0 | |
CBreakpointContinue | 0 | |
SModuleLoaded | 80 | |
SLog | 9 | logging out to the Visual Studio D0 output window |
SLogW | 0 | |
SClearLog | 0 | |
SEnableLog | 0 | |
SViewObject | 0 | |
SViewString | 0 | |
SViewText | 0 | |
SViewImage | 0 | |
SInlineViewHistoryUpdate | 5 | how many updates of inline variables there have been |
SCompilationResult | 2 | |
SLiveTraceUpdate | 2516 | how many live trace updates there have been |
SDebugNextTest | 0 | |
SBreak | 0 | |
SLiveCallStackUpdate | 0 | how many live call stack updates there have been |
SReportDiagnostic | 0 | |
SClearReturnValueView | 0 | |
CInitForModule | 5 | how many modules had a valid PDB |
CChangeObjectExpandState | 0 | |
CApplyScriptSnippets | 2 | |
CSetupLiveCodeTrace | 5 | how many requests for live code trace there have been |
CQueueViewObjectChange | 0 | |
CAddEvalCode | 0 | |
CActivateFunction | 4 | |
SCEnableRuntimeCode | 0 | |
CSetExternalBreakpointList | 0 | |
CToggleLiveCallstackCollection | 0 | |
CToggleInlineChangesCollection | 1 | |
SUpdateSnippetLine | 0 | |
SClearEditorTaggers | 0 | |
SCSetPerfTraceFunction | 0 | |
SReportDriverException | 0 | |
CInstructionPatchInserted | 118 | |
CInstructionPatchRemoved | 0 | |
SCBindBreakpoints | 7 | |
SCHandleException | 3 | how many exceptions the process has thrown |
CEnableBreakpointsAfterSingleStep | 0 | |
SRelocationAdded | 35 | how many relocations have been added |
SRelocationRetired | 0 | |
SReprocessExistingFiles | 0 | |
SRetoggleVisualStudioBreakpoint | 0 |