Skip to content

Commit

Permalink
Merge pull request #3068 from Microsoft/seanmcm/0_21_0_release
Browse files Browse the repository at this point in the history
  • Loading branch information
bobbrow authored Jan 22, 2019
2 parents 9702eae + a533eb9 commit b3cce80
Show file tree
Hide file tree
Showing 31 changed files with 557 additions and 406 deletions.
67 changes: 52 additions & 15 deletions Documentation/Debugger/How To Debug MIEngine.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ You can open the solution file **MIDebugEngine.sln** located under **src** and c
* Microsoft.MIDebugEngine.dll
* vscode\OpenDebugAD7.exe
* vscode\Microsoft.DebugEngineHost.dll
* vscode\Microsoft.VisualStudio.Shared.VSCodeDebugProtocol.dll

The symbol files are as follows:

**On Windows**
* Microsoft.MICore.pdb
* Microsoft.MIDebugEngine.dll
* Microsoft.MIDebugEngine.pdb
* vscode\OpenDebugAD7.pdb
* vscode\Microsoft.DebugEngineHost.pdb

Expand Down Expand Up @@ -51,11 +52,13 @@ This will cause the debugger to look like it has hung once you start debugging,

### Debugging MIEngine running on Linux or Mac OS X

#### With MonoDevelop

On Linux and Mac OS X, we use `mono` as our framework. You can download Xamarin Studio v5.10.1.6 and remotely attach to your Mac or Linux box to debug there.

#### Install Prerequisites
1. Install [GTK](http://www.mono-project.com/download/)
2. Install [Xamarin Studio v5.10.1.6](http://download.xamarin.com/studio/Windows/XamarinStudio-5.10.1.6-0.msi)
##### Install Prerequisites
1. Install [GTK](http://www.mono-project.com/download/).
2. Install [Xamarin Studio v5.10.1.6](http://download.xamarin.com/studio/Windows/XamarinStudio-5.10.1.6-0.msi).

Remote attach functionality behind a flag. You can run it like this:
```PowerShell
Expand All @@ -64,26 +67,60 @@ set MONODEVELOP_SDB_TEST=1
MonoDevelop.exe
```

#### Create an empty project for attaching (one-time setup)
##### Create an empty project for attaching (one-time setup)

1. Launch MonoDevelop
2. File -> New Solution
3. Misc/Generic Project
4. Name project and hit "Create"
5. Right-click the project node (blue square) and do "Options"
1. Launch MonoDevelop.
2. File -> New Solution.
3. Misc/Generic Project.
4. Name project and hit "Create".
5. Right-click the project node (blue square) and do "Options".
6. Under Run -> Custom Commands, select "Execute" in the lower dropdown and choose a command (I use `c:\windows\notepad.exe` - it doesn't matter what the command is, but MonoDevelop requires it to exist before it'll light up the Run menu).

#### Configure the extension to enable remote debugging
##### Configure the extension to enable remote debugging

Open the **~/.vscode/extensions/ms-vscode.cpptools-\<version\>/debugAdapters/OpenDebugAD7** file with a text editor and locate and uncomment the line at the bottom. When you start debugging, it will now hang until the remote debugger is attached from Xamarin Studio.

#### Attach the remote debugger
##### Attach the remote debugger

In MonoDevelop: Run -> Run With -> Custom Command Mono Soft Debugger
Fill in the IP and port of the Linux/Mac OS X machine and hit "Connect" to start debugging
In MonoDevelop: Run -> Run With -> Custom Command Mono Soft Debugger.
Fill in the IP and port of the Linux/Mac OS X machine and hit "Connect" to start debugging.

After you've done this once, you can hit the MonoDevelop "Play" button or <kbd>F5</kbd> to bring up the connect dialog again.

Note: If you are debugging to CentOS, you will need to make an exception in the firewall
#### With VS Code + Mono Debug

##### Install Prerequisites
1. Install [VS Code](https://code.visualstudio.com/Download).
2. Install Mono Debug extension for VS Code.

##### Create an empty project (one-time setup)
1. Open to a new folder and create `.vscode/launch.json`.
2. Create the following configuration in launch.json.
```
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Mono",
"request": "attach",
"type": "mono",
"address": "<INSERT_MACHINE_IP_ADDRESS_HERE>",
"port": 1234
}
]
}
```

##### Configure the extension to enable remote debugging

Open the **~/.vscode/extensions/ms-vscode.cpptools-\<version\>/debugAdapters/OpenDebugAD7** file with a text editor and locate and uncomment the line at the bottom. When you start debugging, it will now hang until the remote debugger is attached from VS Code.

##### Attach the remote debugger

Select the `Attach to Mono` configuration and hit F5.

#### Additional Notes

Note: If you are debugging to CentOS, you will need to make an exception in the firewall.
* `sudo firewall-cmd --zone=public --add-port=1234/tcp --permanent`
* `sudo firewall-cmd --reload`
2 changes: 1 addition & 1 deletion Documentation/FAQs.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ When you start debugging, if it is showing that your breakpoints aren't bound (s

### Debugging starts but all the lines in my stack trace are grey

If your debugger is showing a grey stacktrace or won't stop at a breakpoint,or the symbols in the call stack are grey then your executable was compiled without [debug symbols](#how-to-enable-debug-symbols).
If your debugger is showing a grey stacktrace or won't stop at a breakpoint, or the symbols in the call stack are grey then your executable was compiled without [debug symbols](#how-to-enable-debug-symbols).

## How to enable debug symbols?

Expand Down
6 changes: 6 additions & 0 deletions Documentation/LanguageServer/MinGW.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ When you set the `compilerPath` property and change `intelliSenseMode` to `clang
}
```

Replace "gcc.exe" with whatever compiler you're using, e.g. "g++.exe", "clang-5.0.exe", etc. -- just make sure the file is a valid Windows executable (not a 0 size symlink).

For Cygwin, set the `compilerPath` to the appropriate Cygwin path, e.g. "C:/cygwin64/bin/g++.exe".

If it seems like the `compilerPath` is not getting used, you can debug the issue via [enabling logging](Enabling%20logging.md).

## Extension version 0.16.1 and earlier:

If you have an older version of the C/C++ extension installed, use [these instructions](Archive/MinGW.md) instead.
4 changes: 2 additions & 2 deletions Extension/.vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"preLaunchTask": "compile",
"preLaunchTask": "TypeScript Compile",
},
{
"name": "Launch Tests",
Expand All @@ -31,7 +31,7 @@
"outFiles": [
"${workspaceFolder}/out/test/**/*.js"
],
"preLaunchTask": "compile"
"preLaunchTask": "TypeScript Compile"
},
{
"name": "Node Attach",
Expand Down
4 changes: 1 addition & 3 deletions Extension/.vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"tasks": [
{
"label": "TypeScript Compile",
"identifier": "compile",
"group": {
"kind": "build",
"isDefault": true
Expand All @@ -29,7 +28,6 @@
},
{
"label": "TypeScript Lint",
"identifier": "tslint",
"group": "build",
"isBackground": false,
"type": "shell",
Expand All @@ -53,7 +51,7 @@
]
},
"dependsOn": [
"compile"
"TypeScript Compile"
]
}
]
Expand Down
Loading

0 comments on commit b3cce80

Please sign in to comment.