Skip to content

Commit e5d9018

Browse files
Merge pull request #1410 from OmniSharp/master
Merge master into release
2 parents d858640 + e9ab813 commit e5d9018

38 files changed

+2331
-604
lines changed

.vscode/launch.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
],
1212
"stopOnEntry": false,
1313
"sourceMaps": true,
14-
"outDir": "${workspaceRoot}/out/src"
14+
"outFiles": [
15+
"${workspaceRoot}/out/src/**/*.js"
16+
]
1517
},
1618
{
1719
"name": "Launch Tests",
@@ -21,7 +23,9 @@
2123
"args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
2224
"stopOnEntry": false,
2325
"sourceMaps": true,
24-
"outDir": "${workspaceRoot}/out/test"
26+
"outFiles": [
27+
"${workspaceRoot}/out/test/**/*.js"
28+
]
2529
}
2630
]
2731
}

CHANGELOG.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,49 @@
1-
## Known Issues
1+
## Known Issues in 1.8.1
22

33
* Running and debugging of tests are not supported in .csproj-based .NET Core projects. However, there will still be clickable "run test" and "debug test" indicators above test methods. ([#1100](https://github.com/OmniSharp/omnisharp-vscode/issues/1100))
44
* 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))
55
* There currently is no completion support for package references in csproj files. ([#1156](https://github.com/OmniSharp/omnisharp-vscode/issues/1156))
66

7+
## 1.9.0 _(Not Yet Released)_
8+
9+
#### Unit Testing
10+
11+
* Support added for running and debugging unit tests in .csproj-based .NET Core projects. ([#1100](https://github.com/OmniSharp/omnisharp-vscode/issues/1100))
12+
13+
#### Debugger
14+
15+
* **Arch Linux change**: Before, the debugger would automatically use the Ubuntu 16 debugger on Arch. Now we require the debugger to be explicitly set. See https://aka.ms/vscode-csext-arch for more information.
16+
* Several bug fixes that addressed problems with launch ([#1335](https://github.com/OmniSharp/omnisharp-vscode/issues/1335), [#1336](https://github.com/OmniSharp/omnisharp-vscode/issues/1336))
17+
* Fixed several pipeTransport issues including introducing a new `quoteArgs` option ([#1318](https://github.com/OmniSharp/omnisharp-vscode/issues/1318)), and fixing attach with Docker ([#1369](https://github.com/OmniSharp/omnisharp-vscode/issues/1369))
18+
* Fix issue where VS Code would incorrectly display threads as paused ([#1317](https://github.com/OmniSharp/omnisharp-vscode/issues/1317))
19+
* Added new 'csharp.fallbackDebuggerLinuxRuntimeId' configuration setting to control the version of the debugger used on Linux ([#1361](https://github.com/OmniSharp/omnisharp-vscode/issues/1361)).
20+
* Added a new `clr` debugging `type` in launch.json to enable debugging for Azure scenarios. That type is limited to Windows Desktop CLR, 64-bit processes, and only supports the [Portable PDB debug format](https://github.com/OmniSharp/omnisharp-vscode/wiki/Portable-PDBs).
21+
* Added support for the launch.json editor's 'Add Configuration' button ([#1024](https://github.com/OmniSharp/omnisharp-vscode/issues/1024]))
22+
23+
#### Project System
24+
25+
* Properly handle package references with version ranges in .csproj (PR: [omnisharp-roslyn#814](https://github.com/OmniSharp/omnisharp-roslyn/pull/814))
26+
* Fix regression with MSBuild project system where a project reference and a binary reference could be added for the same assembly, causing ambiguity errors ([omnisharp-roslyn#795](https://github.com/OmniSharp/omnisharp-roslyn/issues/795), PR: [omnisharp-roslyn#815](https://github.com/OmniSharp/omnisharp-roslyn/pull/815))
27+
* If VS 2017 is on the current machine, use the MSBuild included with VS 2017 for processing projects. ([#1368](https://github.com/OmniSharp/omnisharp-vscode/issues/1368), PR: [omnisharp-roslyn#818]()https://github.com/OmniSharp/omnisharp-roslyn/issues/818)
28+
* Fixed null reference exception in DotNetProjectSystem when project reference is invalid (PR: [omnisharp-roslyn#797](https://github.com/OmniSharp/omnisharp-roslyn/pull/797))
29+
30+
#### Improved OmniSharp Settings
31+
* Added support for global omnisharp.json file ([omnisharp-roslyn#717](https://github.com/OmniSharp/omnisharp-roslyn/issues/7170), PR: [omnisharp-roslyn#809](https://github.com/OmniSharp/omnisharp-roslyn/pull/809)) _(Contributed by [@filipw](https://github.com/filipw))_
32+
33+
This file can appear in one of the following locations:
34+
* Windows: `%APPDATA%\OmniSharp\omnisharp.json`
35+
* macOS/Linus: `~/.omnisharp/omnisharp.json`
36+
* Watch local and global omnisharp.json files for changes while OmniSharp is running. Currently, this only works for formatting options. (PR: [omnisharp-roslyn#804](https://github.com/OmniSharp/omnisharp-roslyn/pull/804))_(Contributed by [@filipw](https://github.com/filipw))_
37+
* New 'omnisharp.waitForDebugger' setting to make it easier to debug the OmniSharp server itself. (PR: [#1370](https://github.com/OmniSharp/omnisharp-roslyn/pull/1370))
38+
39+
#### Other Updates and Fixes
40+
41+
* Improvements made to project.json package completion experience. ([#1338](https://github.com/OmniSharp/omnisharp-vscode/pull/1338))
42+
* Diagnostics are no longer created for hidden diagnostics, addressing the problem of "Remove Unnecessary Usings" spam in the Problems pane. ([#1231](https://github.com/OmniSharp/omnisharp-vscode/issues/1231))
43+
* Improved the extension's runtime dependency download logic to skip re-downloading packages that were already successfully downloaded and installed.
44+
* Assets for building and debugging are now always generated with POSIX style paths. ([#1354](https://github.com/OmniSharp/omnisharp-vscode/pull/1354))
45+
* Don't offer to generate tasks.json if build task already exists. (PR #1363) _(Contributed by [@eamodio](https://github.com/eamodio))_
46+
747
## 1.8.1 (March 31, 2017)
848

949
Fixes debugging on macOS Sierra 10.12.4.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ See our [change log](https://github.com/OmniSharp/omnisharp-vscode/blob/v1.8.0/C
3434

3535
### Supported Operating Systems for Debugging
3636

37-
* Currently, the C# debugger supports the following operatings systems:
37+
* Currently, the C# debugger supports the following operating systems:
3838

3939
* Windows (64-bit only)
4040
* macOS
@@ -64,7 +64,7 @@ To **run and develop** do the following:
6464
* Run `npm i`
6565
* Run `npm run compile`
6666
* Open in Visual Studio Code (`code .`)
67-
* *Optional:* run `tsc -w`, make code changes (on Windows, try `start node ".\node_modules\typescript\bin\tsc -w"`)
67+
* *Optional:* run `npm run watch`, make code changes
6868
* Press <kbd>F5</kbd> to debug
6969

7070
To **test** do the following: `npm run test` or <kbd>F5</kbd> in VS Code with the "Launch Tests" debug configuration.

debugger-launchjson.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# Configurating launch.json for C# debugging
2+
The launch.json file is used to configure the debugger in Visual Studio Code.
3+
4+
Visual Studio Code generates a launch.json with almost all of the required information.
5+
If your workspace has only one launchable project, the C# extension will offer to automatically generate this file.
6+
If you missed this prompt, you can force the generation by executing the command `.NET: Generate Assets for Build and Debug` from the VS Code command palette.
7+
The generated file contains two sections. One that configures debugging for launch and a second that configures debugging for attach.
8+
9+
If you have more than one launchable project, then you will need to modify your launch.json file by hand.
10+
Visual Studio Code will still generate a basic template, but you will need to fill in the 'program' field to point at the executable dll that you would like to debug.
11+
12+
13+
# Configurating VS Code's debugging behavior
14+
15+
## PreLaunchTask
16+
The `preLaunchTask` field runs the associated taskName in tasks.json before debugging your program. You can get the default build prelaunch task by executing the command `Tasks: Configure Tasks Runner` from the VS Code command palette.
17+
18+
This will create a task that runs `dotnet build`. You can read more about tasks at [https://code.visualstudio.com/docs/editor/tasks](https://code.visualstudio.com/docs/editor/tasks).
19+
20+
## Program
21+
The program field is set to the path to the application dll or .NET Core host executable to launch.
22+
23+
Example: "${workspaceRoot}/bin/Debug/\<target-framework\>/\<project-name.dll\>" where:
24+
25+
* \<target-framework\>: (example: 'netstandard1.5') This is the framework that the app is being built for. It is set in the project.json file.
26+
* \<project-name\>: (example: 'MyApp') The name of the project being debugged.",
27+
28+
## Cwd
29+
The working directory of the target process.
30+
31+
## Args
32+
These are the arguments that will be passed to your program.
33+
34+
## Stop at Entry
35+
If you need to stop at the entry point of the target, you can optionally set `stopAtEntry` to be "true".
36+
37+
## Launch Browser
38+
The launch browser field can be optionally added if you need to launch with a web browser.
39+
If there are web server dependencies in your project.json, the auto generated launch file will add launch
40+
browser for you. It will open with the default program to handle URLs.
41+
42+
## Environment variables
43+
Environment variables may be passed to your program using this schema:
44+
45+
"env": {
46+
"myVariableName":"theValueGoesHere"
47+
}
48+
49+
## Console (terminal) window
50+
By default, processes are launched with their console output (stdout/stderr) going to the VS Code Debugger Console. This is useful for executables that take their input from the network, files, etc. But this does NOT work for applications that want to read from the console (ex: `Console.ReadLine`). For these applications, use a setting such as the following:
51+
52+
"console": "integratedTerminal"
53+
54+
When this is set to `integratedTerminal` the target process will run inside [VS Code's integrated terminal](https://code.visualstudio.com/docs/editor/integrated-terminal). Click the 'Terminal' tab in the tab group beneath the editor to interact with your application.
55+
56+
When this is set to `externalTerminal` the target process will run in a separate terminal.
57+
58+
## Source File Map
59+
You can optionally configure a file by file mapping by providing map following this schema:
60+
61+
"sourceFileMap": {
62+
"C:\foo":"/home/me/foo"
63+
}
64+
65+
## Symbol Path
66+
You can optionally provide paths to symbols following this schema:
67+
68+
"symbolPath": [ "/Volumes/symbols" ]
69+
70+
## Just My Code
71+
You can optionally disable `justMyCode` by setting it to "false". You should disable Just My Code when you are trying to debug into a library that you pulled down which doesn't have symbols or is optimized.
72+
73+
"justMyCode":false*
74+
75+
Just My Code is a set of features that makes it easier to focus on debugging your code by hiding some of the details of optimized libraries that you might be using, like the .NET Framework itself. The most important sub parts of this feature are --
76+
77+
* User-unhandled exceptions: automatically stop the debugger just before exceptions are about to be caught by the framework
78+
* Just My Code stepping: when stepping, if framework code calls back to user code, automatically stop.
79+
80+
## Require Exact Source
81+
The debugger requires the pdb and source code to be exactly the same. To change this and disable the sources to be the same add:
82+
83+
"requireExactSource": false
84+
85+
## Stepping into properties and operators
86+
The debugger steps over properties and operators in managed code by default. In most cases, this provides a better debugging experience. To change this and enable stepping into properties or operators add:
87+
88+
"enableStepFiltering": false
89+
90+
## Logging
91+
You can optionally enable or disable messages that should be logged to the output window. The flags in the logging field are: 'exceptions', 'moduleLoad', 'programOutput', 'engineLogging', and 'browserStdOut'.
92+
93+
## PipeTransport
94+
If you need to have the debugger to connect to a remote computer using another executable to relay standard input and output bewteen VS Code and the .NET Core debugger backend (vsdbg),
95+
then add the pipeTransport field folloing this schema:
96+
97+
"pipeTransport": {
98+
"pipeProgram": "ssh",
99+
"pipeArgs": [ "-T", "ExampleAccount@ExampleTargetComputer" ],
100+
"debuggerPath": "~/vsdbg/vsdbg",
101+
"pipeCwd": "${workspaceRoot}",
102+
"quoteArgs": true
103+
}
104+
105+
More information about pipe transport can be found [here](https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes).
106+
107+
You can find information on configuring pipe transport for [Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/commandline/wsl/about) (WSL) [here](https://github.com/OmniSharp/omnisharp-vscode/wiki/Windows-Subsystem-for-Linux).
108+
109+
## Operating System Specific Configurations
110+
If there specific commands that need to be changed per operating system, you can use the fields: 'windows', 'osx', or 'linux'.
111+
You can replace any of the fields mentioned above for the specific operating system.
112+

debugger.md

Lines changed: 9 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
#Instructions for setting up the .NET Core debugger
1+
# Instructions for setting up the .NET Core debugger
22
This page gives you detailed instructions on how to debug code running under .NET Core in VS Code.
33

4-
####Your Feedback​
4+
#### Your Feedback​
55
File bugs and feature requests [here](https://github.com/OmniSharp/omnisharp-vscode/issues) and [join our insiders group](http://landinghub.visualstudio.com/dotnetcoreinsiders) to help us build great tooling for .NET Core.
66

7-
####Requirements
7+
#### Requirements
88
* Requires .NET Core 1.0 (rc2 are earlier releases are not supported)
99
* X64 only
1010
* Supported operating systems:
1111
* macOS: 10.11+ (El Capitan+)
1212
* Linux: Red Hat Enterprise Linux 7.2+, Ubuntu 14.04 LTS, Ubuntu 16.04 LTS, Debian 8.2+, Linux Mint 17+, CentOS 7.1+, Oracle Linux 7.1+, Fedora 23, openSUSE 13.2
1313
* Windows: 7+
1414

15-
###First Time setup
15+
### First Time setup
1616
##### 1: Get Visual Studio Code
1717
Install Visual Studio Code (VSC). Pick the latest VSC version from here: https://code.visualstudio.com Make sure it is at least 1.5.
1818

@@ -35,9 +35,8 @@ If you have previously installed the C# extension, make sure that you have a rec
3535
The first time that C# code is opened in VS Code, the extension will download the platform-specific files needed for debugging and editing. Debugging and editor features will not work until these steps finish.
3636

3737

38-
###Once for each project
38+
### Once for each project
3939
The following steps have to executed for every project.
40-
4140
##### 1: Get a project
4241
You can start from scratch by creating an empty project with `dotnet new`. Begin by opening the terminal in Visual Studio Code (`View->Integrated Terminal`) and type these commands:
4342

@@ -80,56 +79,14 @@ If your code has multiple projects or you would rather generate these files by h
8079
##### 4: Start debugging
8180
Your project is now all set. Set a breakpoint or two where you want to stop, click the debugger play button (or press <kbd>F5</kbd>) and you are off.
8281

83-
###Debugging Code compiled on another computer
82+
### Debugging Code compiled on another computer
8483
If your code was built on a different computer from where you would like to run in there are a few things to keep in mind --
8584

86-
* **Source Maps**: Unless your local source code is at exactly the same path as where the code was originally built you will need to add a [sourceFileMap](#source-file-map) to launch.json.
85+
* **Source Maps**: Unless your local source code is at exactly the same path as where the code was originally built you will need to add a [sourceFileMap](https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#source-file-map) to launch.json.
8786
* **Portable PDBs**: If the code was built on Windows, it might have been built using Windows PDBs instead of portable PDBs, but the C# extension only supports portable PDBs. See the [portable PDB documentation](https://github.com/OmniSharp/omnisharp-vscode/wiki/Portable-PDBs#how-to-generate-portable-pdbs) for more information.
88-
* **Debug vs. Release**: It is much easier to debug code which has been compiled in the `Debug` configuration. So unless the issue you are looking at only reproduces with optimizations, it is much better to use Debug bits. If you do need to debug optimized code, you will need to disable [justMyCode](#just-my-code) in launch.json.
89-
90-
####More things to configure In launch.json
91-
#####Just My Code
92-
You can optionally disable justMyCode by setting it to "false". You should disable Just My Code when you are trying to debug into a library that you pulled down which doesn't have symbols or is optimized.
93-
94-
"justMyCode":false*
95-
96-
Just My Code is a set of features that makes it easier to focus on debugging your code by hiding some of the details of optimized libraries that you might be using, like the .NET Framework itself. The most important sub parts of this feature are --
97-
98-
* User-unhandled exceptions: automatically stop the debugger just before exceptions are about to be caught by the framework
99-
* Just My Code stepping: when stepping, if framework code calls back to user code, automatically stop.
100-
101-
#####Source File Map
102-
You can optionally configure a file by file mapping by providing map following this schema:
103-
104-
"sourceFileMap": {
105-
"C:\foo":"/home/me/foo"
106-
}
107-
108-
#####Symbol Path
109-
You can optionally provide paths to symbols following this schema:
110-
111-
"symbolPath": [ "/Volumes/symbols" ]
112-
113-
#####Environment variables
114-
Environment variables may be passed to your program using this schema:
115-
116-
"env": {
117-
"myVariableName":"theValueGoesHere"
118-
}
119-
120-
#####Console (terminal) window
121-
By default, processes are launched with their console output (stdout/stderr) going to the VS Code Debugger Console. This is useful for executables that take their input from the network, files, etc. But this does NOT work for applications that want to read from the console (ex: `Console.ReadLine`). For these applications, use a setting such as the following:
122-
123-
"console": "integratedTerminal"
124-
125-
When this is set to `integratedTerminal` the target process will run inside [VS Code's integrated terminal](https://code.visualstudio.com/docs/editor/integrated-terminal). Click the 'Terminal' tab in the tab group beneath the editor to interact with your application.
126-
127-
When this is set to `externalTerminal` the target process will run in a separate terminal.
128-
129-
##### Stepping into properties and operators
130-
The debugger steps over properties and operators in managed code by default. In most cases, this provides a better debugging experience. To change this and enable stepping into properties or operators add:
87+
* **Debug vs. Release**: It is much easier to debug code which has been compiled in the `Debug` configuration. So unless the issue you are looking at only reproduces with optimizations, it is much better to use Debug bits. If you do need to debug optimized code, you will need to disable [justMyCode](https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#just-my-code) in launch.json.
13188

132-
"enableStepFiltering": false
89+
#### [Configurating launch.json for C# Debugging](debugger-launchjson.md)
13390

13491
#### Attach Support
13592
The C# debugger supports attaching to processes. To do this, switch to the Debug tab, and open the configuration drop down.

0 commit comments

Comments
 (0)