Merge pull request #292 from puremourning/codelldb-default

Recommend CodeLLDB
This commit is contained in:
mergify[bot] 2020-11-13 17:02:14 +00:00 • committed by GitHub
commit 3f3a001283
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 42 deletions

View file

@ -133,8 +133,9 @@ runtime dependencies). They are categorised by their level of support:
* `Legacy`: No longer supported, please migrate your config * `Legacy`: No longer supported, please migrate your config
| Language | Status | Switch (for `install_gadget.py`) | Adapter (for `:VimspectorInstall`) | Dependencies | | Language | Status | Switch (for `install_gadget.py`) | Adapter (for `:VimspectorInstall`) | Dependencies |
|------------------|--------------|----------------------------------|------------------------------------|--------------------------------------------| |--------------------|--------------|----------------------------------|------------------------------------|--------------------------------------------|
| C, C++, etc. | Tested | `--all` or `--enable-c` | vscode-cpptools | mono-core | | C, C++, etc. | Tested | `--all` or `--enable-c` | vscode-cpptools | mono-core |
| Rust, C, C++, etc. | Supported | `--force-enable-rust` | CodeLLDB | Python 3 |
| Python | Tested | `--all` or `--enable-python` | debugpy | Python 2.7 or Python 3 | | Python | Tested | `--all` or `--enable-python` | debugpy | Python 2.7 or Python 3 |
| Go | Tested | `--enable-go` | vscode-go | Go, [Delve][] | | Go | Tested | `--enable-go` | vscode-go | Go, [Delve][] |
| TCL | Supported | `--all` or `--enable-tcl` | tclpro | TCL 8.5 | | TCL | Supported | `--all` or `--enable-tcl` | tclpro | TCL 8.5 |
@ -144,7 +145,6 @@ runtime dependencies). They are categorised by their level of support:
| Java | Supported | `--force-enable-java ` | vscode-java-debug | Compatible LSP plugin (see [later](#java)) | | Java | Supported | `--force-enable-java ` | vscode-java-debug | Compatible LSP plugin (see [later](#java)) |
| C# (dotnet core) | Experimental | `--force-enable-csharp` | netcoredbg | DotNet core | | C# (dotnet core) | Experimental | `--force-enable-csharp` | netcoredbg | DotNet core |
| C# (mono) | Experimental | `--force-enable-csharp` | vscode-mono-debug | Mono | | C# (mono) | Experimental | `--force-enable-csharp` | vscode-mono-debug | Mono |
| Rust (CodeLLDB) | Experimental | `--force-enable-rust` | CodeLLDB | Python 3 |
| Python.legacy | Legacy | `--force-enable-python.legacy` | vscode-python | Node 10, Python 2.7 or Python 3 | | Python.legacy | Legacy | `--force-enable-python.legacy` | vscode-python | Node 10, Python 2.7 or Python 3 |
## Other languages ## Other languages
@ -869,7 +869,10 @@ Current tested with the following debug adapters.
## C, C++, Rust, etc. ## C, C++, Rust, etc.
* C++: [vscode-cpptools](https://github.com/Microsoft/vscode-cpptools) * [vscode-cpptools](https://github.com/Microsoft/vscode-cpptools)
* On macOS, I *strongly* recommend using [CodeLLDB](#rust) instead for C and C++
projects. It's really excellent, has fewer dependencies and doesn't open console
apps in another Terminal window.
Example `.vimspector.json` (works with both `vscode-cpptools` and `lldb-vscode`. Example `.vimspector.json` (works with both `vscode-cpptools` and `lldb-vscode`.
@ -926,6 +929,12 @@ licensing.
} }
``` ```
* CodeLLDB (MacOS)
CodeLLDB is superior to vscode-cpptools in a number of ways on macOS at least.
See [Rust](#rust).
* lldb-vscode (MacOS) * lldb-vscode (MacOS)
An alternative is to to use `lldb-vscode`, which comes with llvm. Here's how: An alternative is to to use `lldb-vscode`, which comes with llvm. Here's how:
@ -959,6 +968,33 @@ An alternative is to to use `lldb-vscode`, which comes with llvm. Here's how:
} }
``` ```
## Rust
Rust is supported with any gdb/lldb-based debugger. So it works fine with
`vscode-cpptools` and `lldb-vscode` above. However, support for rust is best in
[`CodeLLDB`](https://github.com/vadimcn/vscode-lldb#features).
* `./install_gadget.py --force-enable-rust` or `:VimspectorInstall CodeLLDB`
* Example: `support/test/rust/vimspector_test`
```json
{
"configurations": {
"launch": {
"adapter": "CodeLLDB",
"configuration": {
"request": "launch",
"program": "${workspaceRoot}/target/debug/vimspector_test"
}
}
}
}
```
* Docs: https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md
### Remote debugging ### Remote debugging
The cpptools documentation describes how to attach cpptools to gdbserver using The cpptools documentation describes how to attach cpptools to gdbserver using
@ -1374,32 +1410,6 @@ For the launch arguments, see the
See [this issue](https://github.com/puremourning/vimspector/issues/3) for more See [this issue](https://github.com/puremourning/vimspector/issues/3) for more
background. background.
## Rust
Rust is supported with any gdb/lldb-based debugger. So it works fine with
`vscode-cpptools` and `lldb-vscode` above. However, support for rust is best in
[`CodeLLDB`](https://github.com/vadimcn/vscode-lldb#features).
* `./install_gadget.py --force-enable-rust` or `:VimspectorInstall CodeLLDB`
* Example: `support/test/rust/vimspector_test`
```json
{
"configurations": {
"launch": {
"adapter": "CodeLLDB",
"configuration": {
"request": "launch",
"program": "${workspaceRoot}/target/debug/vimspector_test"
}
}
}
}
```
* Docs: https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md
## Other servers ## Other servers
* Java - vscode-javac. This works, but is not as functional as Java Debug * Java - vscode-javac. This works, but is not as functional as Java Debug

View file

@ -438,7 +438,7 @@ GADGETS = {
}, },
'CodeLLDB': { 'CodeLLDB': {
'language': 'rust', 'language': 'rust',
'enabled': False, 'enabled': True,
'download': { 'download': {
'url': 'https://github.com/vadimcn/vscode-lldb/releases/download/' 'url': 'https://github.com/vadimcn/vscode-lldb/releases/download/'
'${version}/${file_name}', '${version}/${file_name}',