Here's a simple C++ program:
cpp
#include stdio.h
int main() {
printf("Hello world\n");
return 0;
}
On my M1 Macbook air, I can compile, run, and debug this program successfully:
bash
% clang++ hello.cpp -g
% ./a.out
Hello world
% lldb a.out
(lldb) target create "a.out"
Current executable set to '/Users/sam/build/a.out' (x86_64).
(lldb) run
Process 55681 launched: '/Users/sam/build/a.out' (x86_64)
Hello world
Process 55681 exited with status = 0 (0x00000000)
When adding -arch arm64, it builds and runs, as expected:
bash
% clang++ hello.cpp -g -arch arm64
% ./a.out
Hello world
But debugging seems to fail:
bash
% lldb a.out
(lldb) target create "a.out"
Current executable set to '/Users/sam/build/a.out' (arm64).
(lldb) run
error: process exited with status -1 (attach failed ((os/kern) invalid argument))
Is there anything special I need to do to get lldb to work with an executable compiled with -arch arm64?
Macbook Air (M1, 2020)
Big Sur 11.0.1
bash
% clang++ --version
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
bash
% lldb --version
lldb-1200.0.44.2
Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)