Skip to content

Commit c990d7f

Browse files
authored
Add attachDotnetDebugger debug option (#3903)
Adds an option to attach the omnisharp C# debugger for binary module projects, enabling mixed debugging for Powershell Binary Modules. The attach task runs as a child task to the PowerShell debugging session and is managed via its lifecycle. Also: refactored/rearranged the debug config resolution/validation/mutation steps, to occur at the proper stages of functions that were called. I added tests for what I changed.
1 parent 44dd557 commit c990d7f

18 files changed

+960
-158
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ logs/
33
modules
44
modules/
55
node_modules/
6+
obj/
7+
bin/
68
out/
79
sessions/
810
test/.vscode/

examples/.vscode/settings.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@
22
// Use a custom PowerShell Script Analyzer settings file for this workspace.
33
// Relative paths for this setting are always relative to the workspace root dir.
44
"powershell.scriptAnalysis.settingsPath": "./PSScriptAnalyzerSettings.psd1",
5-
"files.defaultLanguage": "powershell"
5+
"files.defaultLanguage": "powershell",
6+
// Suppresses some first-run messages
7+
"git.openRepositoryInParentFolders": "never",
8+
"csharp.suppressDotnetRestoreNotification": true,
9+
"extensions.ignoreRecommendations": true
610
}

package-lock.json

+28-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+12
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,12 @@
9090
"@types/rewire": "2.5.28",
9191
"@types/semver": "7.3.13",
9292
"@types/sinon": "10.0.13",
93+
"@types/ungap__structured-clone": "0.3.0",
9394
"@types/uuid": "9.0.1",
9495
"@types/vscode": "1.67.0",
9596
"@typescript-eslint/eslint-plugin": "5.57.0",
9697
"@typescript-eslint/parser": "5.58.0",
98+
"@ungap/structured-clone": "1.0.2",
9799
"@vscode/test-electron": "2.3.0",
98100
"@vscode/vsce": "2.18.0",
99101
"esbuild": "0.17.16",
@@ -522,6 +524,16 @@
522524
"type": "boolean",
523525
"description": "Determines whether a temporary PowerShell Extension Terminal is created for each debugging session, useful for debugging PowerShell classes and binary modules. Overrides the user setting 'powershell.debugging.createTemporaryIntegratedConsole'.",
524526
"default": false
527+
},
528+
"attachDotnetDebugger": {
529+
"type": "boolean",
530+
"description": "If specified, a C# debug session will be started and attached to the new temporary extension terminal. This does nothing unless 'powershell.debugging.createTemporaryIntegratedConsole' is also specified.",
531+
"default": false
532+
},
533+
"dotnetDebuggerConfigName": {
534+
"type": "string",
535+
"description": "If you would like to use a custom coreclr attach debug launch configuration for the debug session, specify the name here. Otherwise a default basic config will be used. The config must be a coreclr attach config. Launch configs are not supported.",
536+
"default": false
525537
}
526538
}
527539
},

0 commit comments

Comments
 (0)