Skip to content

Commit 98dc005

Browse files
Update debugger to 1.12.2 and support large set of Linux distros (#1576)
* Update debugger to 1.12.0 and remove 'runtimeId' support This checkin updates the debugger to the 1.12.0 release. The major change here is that we are now running on .NET Core 2, and so we can use a single runtime id for all glibc-based Linux distros. This means we can remove all the support we have for runtime id detection and filtering. * Update debugger to 1.12.2 and update documentation This updates the debugger to 1.12.2, which among other things, uses .NET Core 2.0-preview2 instead of preview1.
1 parent bebeaf4 commit 98dc005

File tree

11 files changed

+85
-784
lines changed

11 files changed

+85
-784
lines changed

CHANGELOG.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
## Known Issues in 1.11.0
1+
## Known Issues in 1.12.0
22

33
* When opening a .csproj-based .NET Core project in VS Code, the C# extension will not activate until a C# file is opened in the editor. ([#1150](https://github.com/OmniSharp/omnisharp-vscode/issues/1150))
44
* There currently is no completion support for package references in csproj files. ([#1156](https://github.com/OmniSharp/omnisharp-vscode/issues/1156))
55

6+
## 1.12.0 _(Not Yet Released)_
7+
8+
#### Debugger
9+
10+
* Update debugger to run *itself* on .NET Core 2.0-preview2 (target app can still use .NET Core 1.x). This allows the debugger to run on more Linux distributions, and it allows there to be a single debugger package for all supported Linux distributions.
11+
* Fix issue where the call stack may be empty when stepping quickly ([#1575](https://github.com/OmniSharp/omnisharp-vscode/issues/1575))
12+
13+
#### Other Updates and Fixes
14+
15+
* Automatically activate the extension when opening workspaces that contain any .csproj, .sln, or .csx files ([#1375](https://github.com/OmniSharp/omnisharp-vscode/issues/1375), [#1150](https://github.com/OmniSharp/omnisharp-vscode/issues/1150), PR: [#1592](https://github.com/OmniSharp/omnisharp-vscode/pull/1592)))
16+
617
## 1.11.0 (June 27, 2017)
718

819
#### Completion List

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,17 @@ See our [change log](https://github.com/OmniSharp/omnisharp-vscode/blob/v1.10.0/
2828

2929
### Supported Operating Systems for Debugging
3030

31-
* Currently, the C# debugger supports the following operating systems:
31+
* Currently, the C# debugger officially supports the following operating systems:
3232

3333
* Windows (64-bit only)
3434
* macOS
35-
* Ubuntu 14.04 / Linux Mint 17 / Linux Mint 18 / Elementary OS 0.3
36-
* Ubuntu 16.04 / Elementary OS 0.4 / Arch / Zorin OS 12
37-
* Ubuntu 16.10
38-
* Debian 8.2
39-
* CentOS 7.1 / Oracle Linux 7
40-
* Red Hat Enterprise Linux (RHEL)
41-
* Fedora 23 / 24
42-
* OpenSUSE 13 / 42
35+
* Ubuntu 14.04+ (and distros based on it)
36+
* Debian 8.7+
37+
* Red Hat Enterprise Linux (RHEL) / CentOS / Oracle Linux 7.3+
38+
* Fedora 23 / 24 / 25
39+
* OpenSUSE 42.2+
40+
41+
This list is currently the same as the x64 .NET Core 2.0 operating systems (see [.NET Core list](https://github.com/dotnet/core/blob/master/roadmap.md#net-core-20---supported-os-versions)). Note that other Linux distributions will likely work as well as long as they include glibc, OpenSSL 1.0, and libunwind.
4342

4443
### Found a Bug?
4544
Please file any issues at https://github.com/OmniSharp/omnisharp-vscode/issues.

package.json

Lines changed: 21 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "csharp",
33
"publisher": "ms-vscode",
4-
"version": "1.11.0",
4+
"version": "1.12.0-beta1",
55
"description": "C# for Visual Studio Code (powered by OmniSharp).",
66
"displayName": "C#",
77
"author": "Microsoft Corporation",
@@ -164,133 +164,27 @@
164164
},
165165
{
166166
"description": ".NET Core Debugger (Windows / x64)",
167-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-win7-x64.zip",
168-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-win7-x64.zip",
167+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-12-2/coreclr-debug-win7-x64.zip",
168+
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-12-2/coreclr-debug-win7-x64.zip",
169169
"installPath": ".debugger",
170-
"runtimeIds": [
171-
"win7-x64"
170+
"platforms": [
171+
"win32"
172+
],
173+
"architectures": [
174+
"x86_64"
172175
],
173176
"installTestPath": "./.debugger/vsdbg-ui.exe"
174177
},
175178
{
176179
"description": ".NET Core Debugger (macOS / x64)",
177-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-osx.10.11-x64.zip",
178-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-osx.10.11-x64.zip",
179-
"installPath": ".debugger",
180-
"runtimeIds": [
181-
"osx.10.11-x64"
182-
],
183-
"binaries": [
184-
"./vsdbg-ui",
185-
"./vsdbg"
186-
],
187-
"installTestPath": "./.debugger/vsdbg-ui"
188-
},
189-
{
190-
"description": ".NET Core Debugger (CentOS / x64)",
191-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-centos.7-x64.zip",
192-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-centos.7-x64.zip",
193-
"installPath": ".debugger",
194-
"runtimeIds": [
195-
"centos.7-x64"
196-
],
197-
"binaries": [
198-
"./vsdbg-ui",
199-
"./vsdbg"
200-
],
201-
"installTestPath": "./.debugger/vsdbg-ui"
202-
},
203-
{
204-
"description": ".NET Core Debugger (Debian / x64)",
205-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-debian.8-x64.zip",
206-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-debian.8-x64.zip",
207-
"installPath": ".debugger",
208-
"runtimeIds": [
209-
"debian.8-x64"
210-
],
211-
"binaries": [
212-
"./vsdbg-ui",
213-
"./vsdbg"
214-
],
215-
"installTestPath": "./.debugger/vsdbg-ui"
216-
},
217-
{
218-
"description": ".NET Core Debugger (Fedora 23 / x64)",
219-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-fedora.23-x64.zip",
220-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-fedora.23-x64.zip",
221-
"installPath": ".debugger",
222-
"runtimeIds": [
223-
"fedora.23-x64"
224-
],
225-
"binaries": [
226-
"./vsdbg-ui",
227-
"./vsdbg"
228-
],
229-
"installTestPath": "./.debugger/vsdbg-ui"
230-
},
231-
{
232-
"description": ".NET Core Debugger (Fedora 24 / x64)",
233-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-fedora.24-x64.zip",
234-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-fedora.24-x64.zip",
235-
"installPath": ".debugger",
236-
"runtimeIds": [
237-
"fedora.24-x64"
238-
],
239-
"binaries": [
240-
"./vsdbg-ui",
241-
"./vsdbg"
242-
],
243-
"installTestPath": "./.debugger/vsdbg-ui"
244-
},
245-
{
246-
"description": ".NET Core Debugger (OpenSUSE 13 / x64)",
247-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-opensuse.13.2-x64.zip",
248-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-opensuse.13.2-x64.zip",
249-
"installPath": ".debugger",
250-
"runtimeIds": [
251-
"opensuse.13.2-x64"
252-
],
253-
"binaries": [
254-
"./vsdbg-ui",
255-
"./vsdbg"
256-
],
257-
"installTestPath": "./.debugger/vsdbg-ui"
258-
},
259-
{
260-
"description": ".NET Core Debugger (OpenSUSE 42 / x64)",
261-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-opensuse.42.1-x64.zip",
262-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-opensuse.42.1-x64.zip",
263-
"installPath": ".debugger",
264-
"runtimeIds": [
265-
"opensuse.42.1-x64"
266-
],
267-
"binaries": [
268-
"./vsdbg-ui",
269-
"./vsdbg"
270-
],
271-
"installTestPath": "./.debugger/vsdbg-ui"
272-
},
273-
{
274-
"description": ".NET Core Debugger (RHEL / x64)",
275-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-rhel.7.2-x64.zip",
276-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-rhel.7.2-x64.zip",
180+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-12-2/coreclr-debug-osx.10.11-x64.zip",
181+
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-12-2/coreclr-debug-osx.10.11-x64.zip",
277182
"installPath": ".debugger",
278-
"runtimeIds": [
279-
"rhel.7-x64"
280-
],
281-
"binaries": [
282-
"./vsdbg-ui",
283-
"./vsdbg"
183+
"platforms": [
184+
"darwin"
284185
],
285-
"installTestPath": "./.debugger/vsdbg-ui"
286-
},
287-
{
288-
"description": ".NET Core Debugger (Ubuntu 14.04 / x64)",
289-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-ubuntu.14.04-x64.zip",
290-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-ubuntu.14.04-x64.zip",
291-
"installPath": ".debugger",
292-
"runtimeIds": [
293-
"ubuntu.14.04-x64"
186+
"architectures": [
187+
"x86_64"
294188
],
295189
"binaries": [
296190
"./vsdbg-ui",
@@ -299,26 +193,15 @@
299193
"installTestPath": "./.debugger/vsdbg-ui"
300194
},
301195
{
302-
"description": ".NET Core Debugger (Ubuntu 16.04 / x64)",
303-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-ubuntu.16.04-x64.zip",
304-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-ubuntu.16.04-x64.zip",
196+
"description": ".NET Core Debugger (linux / x64)",
197+
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-12-2/coreclr-debug-linux-x64.zip",
198+
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-12-2/coreclr-debug-linux-x64.zip",
305199
"installPath": ".debugger",
306-
"runtimeIds": [
307-
"ubuntu.16.04-x64"
308-
],
309-
"binaries": [
310-
"./vsdbg-ui",
311-
"./vsdbg"
200+
"platforms": [
201+
"linux"
312202
],
313-
"installTestPath": "./.debugger/vsdbg-ui"
314-
},
315-
{
316-
"description": ".NET Core Debugger (Ubuntu 16.10 / x64)",
317-
"url": "https://vsdebugger.azureedge.net/coreclr-debug-1-10-1/coreclr-debug-ubuntu.16.10-x64.zip",
318-
"fallbackUrl": "https://vsdebugger.blob.core.windows.net/coreclr-debug-1-10-1/coreclr-debug-ubuntu.16.10-x64.zip",
319-
"installPath": ".debugger",
320-
"runtimeIds": [
321-
"ubuntu.16.10-x64"
203+
"architectures": [
204+
"x86_64"
322205
],
323206
"binaries": [
324207
"./vsdbg-ui",
@@ -357,22 +240,6 @@
357240
"default": false,
358241
"description": "Suppress the warning that the .NET CLI is not on the path."
359242
},
360-
"csharp.fallbackDebuggerLinuxRuntimeId": {
361-
"type": "string",
362-
"enum": [
363-
"centos.7-x64",
364-
"debian.8-x64",
365-
"fedora.23-x64",
366-
"fedora.24-x64",
367-
"opensuse.13.2-x64",
368-
"opensuse.42.1-x64",
369-
"rhel.7-x64",
370-
"ubuntu.14.04-x64",
371-
"ubuntu.16.04-x64",
372-
"ubuntu.16.10-x64"
373-
],
374-
"description": "If the current Linux distribution is not recognized, this option can be used to tell the debugger what version can be used. After changing this option, close VS Code, remove the debugger folder (~/.vscode/extensions/ms-vscode.csharp-<ver>/.debugger) if it has already downloaded, and restart VS Code."
375-
},
376243
"csharp.unitTestDebuggingOptions": {
377244
"type": "object",
378245
"description": "Options to use with the debugger when launching for unit test debugging. Any launch.json option is valid here.",

src/CSharpExtDownloader.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import * as util from './common';
99
import { Logger } from './logger';
1010
import { PackageManager, Status, PackageError } from './packages';
1111
import { PlatformInformation } from './platform';
12-
import { VSCodePlatformInformation } from './vscodePlatform';
1312

1413
/*
1514
* Class used to download the runtime dependencies of the C# Extension
@@ -55,7 +54,7 @@ export class CSharpExtDownloader
5554
return util.touchInstallFile(util.InstallFileType.Begin)
5655
.then(() => {
5756
installationStage = 'getPlatformInfo';
58-
return VSCodePlatformInformation.GetCurrent();
57+
return PlatformInformation.GetCurrent();
5958
})
6059
.then(info => {
6160
platformInfo = info;
@@ -115,7 +114,6 @@ export class CSharpExtDownloader
115114
telemetryProps['installStage'] = installationStage;
116115
telemetryProps['platform.architecture'] = platformInfo.architecture;
117116
telemetryProps['platform.platform'] = platformInfo.platform;
118-
telemetryProps['platform.runtimeId'] = platformInfo.runtimeId;
119117
if (platformInfo.distribution) {
120118
telemetryProps['platform.distribution'] = platformInfo.distribution.toString();
121119
}

src/coreclr-debug/activate.ts

Lines changed: 18 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ import TelemetryReporter from 'vscode-extension-telemetry';
99
import { CoreClrDebugUtil, DotnetInfo, } from './util';
1010
import * as debugInstall from './install';
1111
import { Logger } from './../logger';
12-
import { VSCodePlatformInformation } from './../vscodePlatform';
13-
import { CSharpExtDownloader } from './../CSharpExtDownloader';
12+
import { PlatformInformation } from './../platform';
1413

1514
let _debugUtil: CoreClrDebugUtil = null;
1615
let _reporter: TelemetryReporter = null;
@@ -22,33 +21,16 @@ export function activate(thisExtension : vscode.Extension<any>, context: vscode.
2221
_logger = logger;
2322

2423
if (!CoreClrDebugUtil.existsSync(_debugUtil.debugAdapterDir())) {
25-
VSCodePlatformInformation.GetCurrent().then((info) => {
26-
if (info.runtimeId) {
27-
if (info.runtimeId === 'win7-x86') {
24+
PlatformInformation.GetCurrent().then((info) => {
25+
if (info.architecture !== "x86_64") {
26+
if (info.isWindows() && info.architecture === "x86") {
2827
logger.appendLine(`[WARNING]: x86 Windows is not currently supported by the .NET Core debugger. Debugging will not be available.`);
29-
} else if (info.isLinux() && VSCodePlatformInformation.isFallbackDebuggerLinuxRuntimeIdSet()) {
30-
// The user set the fallback runtime id after the initial extension install, retry again now
31-
const downloader = new CSharpExtDownloader(channel, logger, null, thisExtension.packageJSON);
32-
downloader.installRuntimeDependencies().then((success : boolean) => {
33-
if (success) {
34-
completeDebuggerInstall(logger, channel);
35-
}
36-
});
3728
} else {
38-
logger.appendLine("[ERROR]: C# Extension failed to install the debugger package");
39-
showInstallErrorMessage(channel);
29+
logger.appendLine(`[WARNING]: Processor architecture '${info.architecture}' is not currently supported by the .NET Core debugger. Debugging will not be available.`);
4030
}
4131
} else {
42-
if (info.isLinux) {
43-
if (info.distribution.name === 'arch') {
44-
logger.appendLine("[WARNING]: The .NET Core debugger could not be automatically installed. Follow instructions on https://aka.ms/vscode-csext-arch to enable debugging on Arch Linux.");
45-
} else {
46-
logger.appendLine(`[WARNING]: The current Linux distribution '${info.distribution.name}' version '${info.distribution.version}' is not currently supported by the .NET Core debugger. Debugging will not be available.`);
47-
logger.appendLine(`If '${info.distribution.name}' is binary compatible with a Linux distribution officially supported by .NET Core, you may be able to resolve this by setting 'csharp.fallbackDebuggerLinuxRuntimeId' in 'File->Preferences->Settings' and restarting VS Code.`);
48-
}
49-
} else {
50-
logger.appendLine(`[WARNING]: The current operating system is not currently supported by the .NET Core debugger. Debugging will not be available.`);
51-
}
32+
logger.appendLine("[ERROR]: C# Extension failed to install the debugger package");
33+
showInstallErrorMessage(channel);
5234
}
5335
}, (err) => {
5436
// Somehow we couldn't figure out the platform we are on
@@ -63,33 +45,17 @@ export function activate(thisExtension : vscode.Extension<any>, context: vscode.
6345
function completeDebuggerInstall(logger: Logger, channel: vscode.OutputChannel) : void {
6446
_debugUtil.checkDotNetCli()
6547
.then((dotnetInfo: DotnetInfo) => {
66-
_debugUtil.checkOpenSSLInstalledIfRequired().then((isInstalled) => {
67-
if (isInstalled) {
68-
let installer = new debugInstall.DebugInstaller(_debugUtil);
69-
installer.finishInstall()
70-
.then(() => {
71-
vscode.window.setStatusBarMessage('Successfully installed .NET Core Debugger.', 5000);
72-
})
73-
.catch((err) => {
74-
logger.appendLine("[ERROR]: An error occured while installing the .NET Core Debugger:");
75-
logger.appendLine(err);
76-
showInstallErrorMessage(channel);
77-
// TODO: log telemetry?
78-
});
79-
} else {
80-
logger.appendLine("[ERROR] The debugger cannot be installed. A required component, OpenSSL, is not correctly configured.");
81-
logger.appendLine("In order to use the debugger, open a terminal window and execute the following instructions.");
82-
logger.appendLine("See https://www.microsoft.com/net/core#macos for more details.");
83-
logger.appendLine();
84-
logger.appendLine(" brew update");
85-
logger.appendLine(" brew install openssl");
86-
logger.appendLine(" mkdir -p /usr/local/lib");
87-
logger.appendLine(" ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/");
88-
logger.appendLine(" ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/");
89-
channel.show();
90-
vscode.window.showErrorMessage("The .NET Core debugger cannot be installed. OpenSSL is not correctly configured. See the C# output channel for details.");
91-
}
92-
});
48+
let installer = new debugInstall.DebugInstaller(_debugUtil);
49+
installer.finishInstall()
50+
.then(() => {
51+
vscode.window.setStatusBarMessage('Successfully installed .NET Core Debugger.', 5000);
52+
})
53+
.catch((err) => {
54+
logger.appendLine("[ERROR]: An error occured while installing the .NET Core Debugger:");
55+
logger.appendLine(err);
56+
showInstallErrorMessage(channel);
57+
// TODO: log telemetry?
58+
});
9359
}, (err) => {
9460
// Check for dotnet tools failed. pop the UI
9561
// err is a DotNetCliError but use defaults in the unexpected case that it's not

0 commit comments

Comments
 (0)