in src/client/debugger/extension/configuration/resolvers/attach.ts [43:108]
protected async provideAttachDefaults(
workspaceFolder: Uri | undefined,
debugConfiguration: AttachRequestArguments,
): Promise<void> {
if (!Array.isArray(debugConfiguration.debugOptions)) {
debugConfiguration.debugOptions = [];
}
if (!(debugConfiguration.connect || debugConfiguration.listen) && !debugConfiguration.host) {
// Connect and listen cannot be mixed with host property.
debugConfiguration.host = 'localhost';
}
if (debugConfiguration.justMyCode === undefined) {
// Populate justMyCode using debugStdLib
debugConfiguration.justMyCode = !debugConfiguration.debugStdLib;
}
debugConfiguration.showReturnValue = debugConfiguration.showReturnValue !== false;
// Pass workspace folder so we can get this when we get debug events firing.
debugConfiguration.workspaceFolder = workspaceFolder ? workspaceFolder.fsPath : undefined;
const debugOptions = debugConfiguration.debugOptions!;
if (!debugConfiguration.justMyCode) {
this.debugOption(debugOptions, DebugOptions.DebugStdLib);
}
if (debugConfiguration.django) {
this.debugOption(debugOptions, DebugOptions.Django);
}
if (debugConfiguration.jinja) {
this.debugOption(debugOptions, DebugOptions.Jinja);
}
if (debugConfiguration.subProcess === true) {
this.debugOption(debugOptions, DebugOptions.SubProcess);
}
if (
debugConfiguration.pyramid &&
debugOptions.indexOf(DebugOptions.Jinja) === -1 &&
debugConfiguration.jinja !== false
) {
this.debugOption(debugOptions, DebugOptions.Jinja);
}
if (debugConfiguration.redirectOutput || debugConfiguration.redirectOutput === undefined) {
this.debugOption(debugOptions, DebugOptions.RedirectOutput);
}
// We'll need paths to be fixed only in the case where local and remote hosts are the same
// I.e. only if hostName === 'localhost' or '127.0.0.1' or ''
const isLocalHost = this.isLocalHost(debugConfiguration.host);
if (this.platformService.isWindows && isLocalHost) {
this.debugOption(debugOptions, DebugOptions.FixFilePathCase);
}
if (this.platformService.isWindows) {
this.debugOption(debugOptions, DebugOptions.WindowsClient);
} else {
this.debugOption(debugOptions, DebugOptions.UnixClient);
}
if (debugConfiguration.showReturnValue) {
this.debugOption(debugOptions, DebugOptions.ShowReturnValue);
}
debugConfiguration.pathMappings = this.resolvePathMappings(
debugConfiguration.pathMappings || [],
debugConfiguration.host,
debugConfiguration.localRoot,
debugConfiguration.remoteRoot,
workspaceFolder,
);
this.sendTelemetry('attach', debugConfiguration);
}