https://github.com/Dodzey created 
https://github.com/llvm/llvm-project/pull/75342

Hi,

I see that the documentation for lldb-dap refers to a ${command.pickMyProcess} 
which can be used for interactive process selection within the VS Code IDE. It 
appears that this functionality no longer works, perhaps due to internal 
changes in VS Code.

I can get interactive process selection if I add the following snippet to the 
lldp-dap extension package.json:

```
"variables": {
        "pickProcess": "extension.pickNativeProcess"
},
```

However, referencing extension.pickNativeProcess here is only valid if the 
Microsoft VSCode CPPTools extension is installed, as that is the extension that 
registers a native process picker under the name 'extension.pickNativeProcess' 
I'm not sure if it's desirable behaviour for the lldb-dap extension to be 
dependent on the presence of the Microsoft CPPTools extension?

It appears (although I am not familiar with VSCode extension development) that 
any solution to this that was fully integrated in the lldp-dap extension would 
require typescript source to be added to the extension in order to register a 
private native process picker under a custom name - something like 
`extension.lldb-dap.pickNativeProcess`. I would assume that this implementation 
would look very similar, if not identical to the command currently exposed by 
the Microsoft CPPTools extension.

In the PR I have included the minimal changes required to seemingly make the 
process picker work when the Microsoft VSCode CPPTools extension is also 
installed.

What are the recommendations on how we could proceed here?


Thanks!


>From fbfc8a6d17f3cb4a7e2b583cb985b27d2cc597f3 Mon Sep 17 00:00:00 2001
From: Dodzey <dod...@users.noreply.github.com>
Date: Wed, 13 Dec 2023 13:57:28 +0000
Subject: [PATCH 1/2] Add variable mapping for pickProcess command

---
 lldb/tools/lldb-dap/package.json | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lldb/tools/lldb-dap/package.json b/lldb/tools/lldb-dap/package.json
index ebb1103d695e17..7b77b32f890a6f 100644
--- a/lldb/tools/lldb-dap/package.json
+++ b/lldb/tools/lldb-dap/package.json
@@ -124,6 +124,9 @@
                                                "swift"
                                        ]
                                },
+                               "variables": {
+                                       "pickProcess": 
"extension.pickNativeProcess"
+                               },
                                "program": "./bin/lldb-dap",
                                "windows": {
                                        "program": "./bin/lldb-dap.exe"

>From 6b79c1937875f0171e259d6eea7c397e5cfd69f4 Mon Sep 17 00:00:00 2001
From: Dodzey <dod...@users.noreply.github.com>
Date: Wed, 13 Dec 2023 13:58:14 +0000
Subject: [PATCH 2/2] Update README.md

---
 lldb/tools/lldb-dap/README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lldb/tools/lldb-dap/README.md b/lldb/tools/lldb-dap/README.md
index 00ceb0bedc40a4..d341a136293a87 100644
--- a/lldb/tools/lldb-dap/README.md
+++ b/lldb/tools/lldb-dap/README.md
@@ -125,7 +125,7 @@ The JSON configuration file can contain the following 
`lldb-dap` specific launch
 |**type**           |string  |Y| Must be "lldb-dap".
 |**request**        |string  |Y| Must be "attach".
 |**program**        |string  | | Path to the executable to attach to. This 
value is optional but can help to resolve breakpoints prior the attaching to 
the program.
-|**pid**            |number  | | The process id of the process you wish to 
attach to. If **pid** is omitted, the debugger will attempt to attach to the 
program by finding a process whose file name matches the file name from 
**porgram**. Setting this value to `${command:pickMyProcess}` will allow 
interactive process selection in the IDE.
+|**pid**            |number  | | The process id of the process you wish to 
attach to. If **pid** is omitted, the debugger will attempt to attach to the 
program by finding a process whose file name matches the file name from 
**program**. Setting this value to `${command:pickProcess}` will allow 
interactive process selection in the IDE.
 |**stopOnEntry**    |boolean| | Whether to stop program immediately after 
launching.
 |**waitFor**        |boolean | | Wait for the process to launch.
 |**initCommands**   |[string]| | LLDB commands executed upon debugger startup 
prior to creating the LLDB target. Commands and command output will be sent to 
the debugger console when they are executed.

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to