c++ 启动调试会话时MacOS上的VSCode LLDB错误

2sbarzqh  于 2023-01-15  发布在  Mac
关注(0)|答案(3)|浏览(415)

我正在配置VSCode,以便在MacOS上编译/调试C++程序。我使用了以下launch.json文件:

当我尝试启动调试会话时,出现以下错误:

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).

值得一提的是,我使用的是M1的MacBook,所以x86_64是不是正确的架构.我假设这是错误的原因.
我似乎找不到任何参考这个错误的任何地方在线,有人知道我怎么能解决这个问题吗?
编辑:添加“目标体系结构”:“ARM 64”删除了警告,但未修复错误。

xqnpmsa8

xqnpmsa81#

我遇到了同样的问题,我发现VSCode还不支持ARM 64二进制文件的调试器。这里是问题link
但是,如果你使用另一个扩展名,它就可以工作。安装CodeLLDB并在launch.json上设置"type": "lldb",如下所示。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "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"
      }
    ]
  }

您可以查看vscode-lldb存储库的快速入门指南。
请注意,preLaunchTask的值应该与task.json中标签的值相同。

dly7yett

dly7yett2#

使用以下命令生成可执行文件:

gcc file_name.c -g

launch.json
“目标体系结构”:“x86_64”,

3zwtqj6y

3zwtqj6y3#

使用货物的配置,而不是“程序”解决了我(使用 rust 和LLDB)。

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

相关问题