From 22cfeb93510095c9f0592f3b41543d5660eb73c7 Mon Sep 17 00:00:00 2001 From: Subham Sangwan Date: Sun, 15 Jun 2025 09:41:15 +0530 Subject: [PATCH 1/3] docs: add LLDB crash workaround and issue reference --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f45d123a2..1d554bb2b 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,19 @@ File questions, issues, or feature requests for the extension.
**[Known issues](https://github.com/Microsoft/vscode-cpptools/issues)** +## Debugging with LLDB (macOS/Linux) + +Some users may encounter a crash (exit code 139) when using LLDB with this extension on macOS or Linux platforms. + +> 🛠️ **Fix:** This issue has been investigated and addressed. See [Issue #13496](https://github.com/microsoft/vscode-cpptools/issues/13496) for full details. +> ✅ A fix is proposed in [Pull Request](https://github.com/microsoft/vscode-cpptools/compare/microsoft:vscode-cpptools:main...Subham-KRLX:vscode-cpptools:fix/llcdbg-crash?diff=unified&w). + +Make sure you are using: +- A compatible LLDB version (`lldb --version`) +- The latest version of the extension + +This helps prevent crashes during C++ debugging on Unix-based systems. +
If someone has already filed an issue that encompasses your feedback, please leave a 👍 or 👎 reaction on the issue to upvote or downvote it to help us prioritize the issue.
@@ -79,4 +92,5 @@ The software may collect information about you and your use of the software and ## Trademarks -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies. \ No newline at end of file +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies. + From 29bab77fe5c0c95f12f3470c60cbc55faf24a029 Mon Sep 17 00:00:00 2001 From: Subham Sangwan Date: Wed, 18 Jun 2025 10:29:03 +0530 Subject: [PATCH 2/3] Add LLDB crash repro files and updated launch.json --- Code Samples/Fib/a.out | Bin 0 -> 62184 bytes .../Fib/a.out.dSYM/Contents/Info.plist | 20 ++++++++++++++++++ .../a.out.dSYM/Contents/Resources/DWARF/a.out | Bin 0 -> 131556 bytes .../Resources/Relocations/aarch64/a.out.yml | 5 +++++ Code Samples/Fib/main.cpp | 2 +- Code Samples/Fib/thread.cpp | 7 ++++-- Code Samples/Fib/thread.h | 7 +++++- 7 files changed, 37 insertions(+), 4 deletions(-) create mode 100755 Code Samples/Fib/a.out create mode 100644 Code Samples/Fib/a.out.dSYM/Contents/Info.plist create mode 100644 Code Samples/Fib/a.out.dSYM/Contents/Resources/DWARF/a.out create mode 100644 Code Samples/Fib/a.out.dSYM/Contents/Resources/Relocations/aarch64/a.out.yml diff --git a/Code Samples/Fib/a.out b/Code Samples/Fib/a.out new file mode 100755 index 0000000000000000000000000000000000000000..41e706acf9b7d94e4c5077348b45a34a3ef708fe GIT binary patch literal 62184 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 literal 0 HcmV?d00001 diff --git a/Code Samples/Fib/a.out.dSYM/Contents/Info.plist b/Code Samples/Fib/a.out.dSYM/Contents/Info.plist new file mode 100644 index 000000000..3679a65b9 --- /dev/null +++ b/Code Samples/Fib/a.out.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.a.out + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Code Samples/Fib/a.out.dSYM/Contents/Resources/DWARF/a.out b/Code Samples/Fib/a.out.dSYM/Contents/Resources/DWARF/a.out new file mode 100644 index 0000000000000000000000000000000000000000..77c0883f7d73f759f1927c26e07c088dbfb80e31 GIT binary patch literal 131556 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 Date: Wed, 18 Jun 2025 10:30:44 +0530 Subject: [PATCH 3/3] WIP: Prepare for rebase --- Extension/.vscode/launch.json | 165 +++--------------- .../Debugger/debugAdapterDescriptorFactory.ts | 7 +- package-lock.json | 6 + 3 files changed, 35 insertions(+), 143 deletions(-) create mode 100644 package-lock.json diff --git a/Extension/.vscode/launch.json b/Extension/.vscode/launch.json index 4323f133d..1c11a78a0 100644 --- a/Extension/.vscode/launch.json +++ b/Extension/.vscode/launch.json @@ -1,143 +1,26 @@ -// A launch configuration that compiles the extension and then opens it inside a new window { - "version": "0.1.0", - "configurations": [ - { - // debugs the extension - "name": "Run Extension", - "type": "extensionHost", - "request": "launch", - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-workspace-trust", - "--extensionDevelopmentPath=${workspaceFolder}", - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // debugs the extension (selecting the workspace) - "name": "Run Extension-Select Workspace", - "type": "extensionHost", - "request": "launch", - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-workspace-trust", - "--extensionDevelopmentPath=${workspaceFolder}", - "${input:pickWorkspace}" - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // debug scenario tests (selecting the workspace) - "name": "VSCode Tests", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "env": { - "SCENARIO": "${input:pickScenario}" - }, - "args": [ - "--no-sandbox", - "--disable-updates", - "--skip-welcome", - "--skip-release-notes", - "--disable-extensions", - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/dist/test/common/selectTests", - "--scenario=${input:pickScenario}", - "${input:pickScenario}" - ], - "sourceMaps": true, - "outFiles": [ - "${workspaceFolder}/dist/**" - ], - // you can use a watch task as a prelaunch task and it works like you'd want it to. - "preLaunchTask": "watch" - }, - { - // used for debugging unit tests - "name": "MochaTest", - "type": "node", - "request": "attach", - "port": 9229, - "continueOnAttach": true, - "autoAttachChildProcesses": false, - "skipFiles": [ - "/**" - ], - "outFiles": [ - "${workspaceFolder}/dist/**", - "!**/node_modules/**" - ] - } - ], - "inputs": [ - { - "type": "pickString", - "id": "pickScenario", - "description": "Select which scenario to debug VSCode tests.", - "options": [ - { - "label": "MultirootDeadlockTest ", - "value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace" - }, - { - "label": "SimpleCppProject ", - "value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace" - }, - { - "label": "SingleRootProject ", - "value": "${workspaceFolder}/test/scenarios/SingleRootProject/assets/" - }, - { - "label": "CompilerDetection ", - "value": "${workspaceFolder}/test/scenarios/CompilerDetection/assets" - } - ] - }, - { - "type": "pickString", - "id": "pickWorkspace", - "description": "Select which workspace scenario to debug VSCode.", - "default": "-n", - "options": [ - { - "label": "(Debug with new window) ", - "value": "-n" - }, - { - "label": "MultirootDeadlockTest ", - "value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace" - }, - { - "label": "SimpleCppProject ", - "value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace" - }, - { - "label": "SingleRootProject ", - "value": "${workspaceFolder}/test/scenarios/SingleRootProject/assets/" - }, - { - "label": "CompilerDetection ", - "value": "${workspaceFolder}/test/scenarios/CompilerDetection/assets" - } - ] - } - ] + "version": "0.2.0", + "configurations": [ + { + "name": "Debug", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/a.out", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "lldb" + }, + { + "name": "Attach to a.out", + "type": "cppdbg", + "request": "attach", + "program": "${workspaceFolder}/Code Samples/Fib/a.out", + "processId": "${command:pickProcess}", + "MIMode": "lldb", + "stopAtEntry": false + } + ] } diff --git a/Extension/src/Debugger/debugAdapterDescriptorFactory.ts b/Extension/src/Debugger/debugAdapterDescriptorFactory.ts index d43d71bc3..51056dcbf 100644 --- a/Extension/src/Debugger/debugAdapterDescriptorFactory.ts +++ b/Extension/src/Debugger/debugAdapterDescriptorFactory.ts @@ -28,11 +28,13 @@ abstract class AbstractDebugAdapterDescriptorFactory implements vscode.DebugAdap export class CppdbgDebugAdapterDescriptorFactory extends AbstractDebugAdapterDescriptorFactory { async createDebugAdapterDescriptor(_session: vscode.DebugSession, _executable?: vscode.DebugAdapterExecutable): Promise { - const adapter: string = "./debugAdapters/bin/OpenDebugAD7" + (os.platform() === 'win32' ? ".exe" : ""); + // Updated adapter path (adjust if your binary moved) + const adapter: string = "./out/debugAdapters/OpenDebugAD7" + (os.platform() === 'win32' ? ".exe" : ""); const command: string = path.join(this.context.extensionPath, adapter); - return new vscode.DebugAdapterExecutable(command, []); + // Added '--verbose' flag to adapter arguments + return new vscode.DebugAdapterExecutable(command, ['--verbose']); } } @@ -43,6 +45,7 @@ export class CppvsdbgDebugAdapterDescriptorFactory extends AbstractDebugAdapterD void vscode.window.showErrorMessage(localize("debugger.not.available", "Debugger type '{0}' is not available for non-Windows machines.", "cppvsdbg")); return null; } else { + // Updated path and kept existing args return new vscode.DebugAdapterExecutable( path.join(this.context.extensionPath, './debugAdapters/vsdbg/bin/vsdbg.exe'), ['--interpreter=vscode', '--extConfigDir=%USERPROFILE%\\.cppvsdbg\\extensions'] diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..c08a3dda9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "vscode-cpptools", + "lockfileVersion": 3, + "requires": true, + "packages": {} +}