Visual Studio Code LLDB on macOS error when starting debugging session

I'm trying to configure Visual Studio Code for compiling/debugging C++ programs on macOS. I am using the following launch.json file:

Enter image description here

When I try and start a debugging session, I get the following error:

Warning: Debuggee TargetArchitecture not detected, assuming x86_64. ERROR: Unable to start debugging. Unexpected LLDB output from command "-exec-run". process exited with status -1 (attach failed ((os/kern) invalid argument)) The program '/path/to/Development/C++/helloworld/main' has exited with code 42 (0x0000002a). 

It is worth mentioning that I am using an MacBook (M1), so x86_64 is not the correct architecture. I'm assuming that this is the reason for the error.

I can't seem to find any reference to this error anywhere online. How can I solve this?

Adding "targetArchitecture": "ARM64" removed the warning, but it does not fix the error.

2

4 Answers

I had the same problem and I found that Visual Studio Code does not support a debugger for ARM64 binaries yet. Here is the issue link.

However, it works if you use another extension. Install CodeLLDB and set "type": "lldb" in launch.json like below.

{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: "version": "0.2.0", "configurations": [ { "name": "clang++ - Build and debug active file", "type": "lldb", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "cwd": "${workspaceFolder}", "preLaunchTask": "clang++ build active file" } ] } 

You can check quick start guide of vscode-lldb repository.

Note that preLaunchTask's value should be the same as the label's value in your task.json file.

1

Using cargo's config instead of "program" resolved it for me (using Rust and LLDB).

{ "name": "(OSX) Launch", "type": "lldb", "request": "launch", "cargo": { "args": ["build", "--manifest-path", "${fileDirname}/../Cargo.toml"] } } 

In 2023, the LLDB debugger works for Rust on macOS Monterey 12.5.1 with an M1 chip:

I installed the CodeLLDB extension. In the vscode menu bar, I clicked on View > Extensions, then in the search text box I typed in CodeLLDB, then I clicked on "install".

I configured launch.json. I created my program with cargo new, and in vscode I made sure that the top directory in Explorer (View > Explorer) was my program's directory, e.g. guessing_game3. I did that by clicking File > Open Folder, then navigating to my program's top level directory.

Then I clicked on the Run and Debug icon on the left side of vscode:

enter image description here

which produced this view:

enter image description here

If you see this instead:

enter image description here

that means you already have a .vscode directory in your program's directory OR one of your program's parent directories. I did that by accident somehow, so I went into one of the parent directories and deleted the .vscode directory:

one_of_my_programs_parent_dirs% rm -rf ./.vscode 

Okay, back to the previous image....I clicked on "Create a launch.json file", and a dialog box popped up:

enter image description here

I clicked "Yes". That created a .vscode directory in my program's directory, which contained the launch.json file:

enter image description here

That's it. The debugger worked. You can read about how to use the debugger here:

Make an executable with the command:

gcc file_name.c -g 

File launch.json

"targetArchitecture": "x86_64",

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like