diff --git a/Code Samples/Fib/a.out b/Code Samples/Fib/a.out
new file mode 100755
index 000000000..41e706acf
Binary files /dev/null and b/Code Samples/Fib/a.out differ
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 000000000..77c0883f7
Binary files /dev/null and b/Code Samples/Fib/a.out.dSYM/Contents/Resources/DWARF/a.out differ
diff --git a/Code Samples/Fib/a.out.dSYM/Contents/Resources/Relocations/aarch64/a.out.yml b/Code Samples/Fib/a.out.dSYM/Contents/Resources/Relocations/aarch64/a.out.yml
new file mode 100644
index 000000000..9c81f13df
--- /dev/null
+++ b/Code Samples/Fib/a.out.dSYM/Contents/Resources/Relocations/aarch64/a.out.yml
@@ -0,0 +1,5 @@
+---
+triple: 'arm64-apple-darwin'
+binary-path: a.out
+relocations: []
+...
diff --git a/Code Samples/Fib/main.cpp b/Code Samples/Fib/main.cpp
index e7ab0c4c9..b605f85d2 100644
--- a/Code Samples/Fib/main.cpp
+++ b/Code Samples/Fib/main.cpp
@@ -54,5 +54,5 @@ int main(int argc, char **argv)
std::cout << "All threads exited!" << std::endl;
- return 1;
+ return 0;
}
diff --git a/Code Samples/Fib/thread.cpp b/Code Samples/Fib/thread.cpp
index bef34e9c7..84a4f2dfd 100644
--- a/Code Samples/Fib/thread.cpp
+++ b/Code Samples/Fib/thread.cpp
@@ -24,7 +24,8 @@ void * thread_proc(void* ctx)
int tid = g_tid++;
char thread_name[16];
- sprintf(thread_name, "Thread %d", tid);
+ snprintf(thread_name, sizeof(thread_name), "Thread %d", tid); // ✅ replaced sprintf with snprintf
+
#ifdef __APPLE__
pthread_setname_np(thread_name);
#else
@@ -45,4 +46,6 @@ void * thread_proc(void* ctx)
}
std::cout << thread_name << " exited!" << std::endl;
-}
\ No newline at end of file
+
+ return nullptr; // ✅ fixed missing return
+}
diff --git a/Code Samples/Fib/thread.h b/Code Samples/Fib/thread.h
index 6af19e651..3b9145661 100644
--- a/Code Samples/Fib/thread.h
+++ b/Code Samples/Fib/thread.h
@@ -1 +1,6 @@
-void * thread_proc(void* ctx);
+#ifndef THREAD_H
+#define THREAD_H
+
+void* thread_proc(void* ctx);
+
+#endif // THREAD_H
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/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.
+
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": {}
+}