M2 MacBook (Air) 运行GDB提示可执行格式不识别问题咨询
问题原因
- 你安装的
aarch64-elf-gdb是交叉调试器,专门用于调试嵌入式类非macOS平台的aarch64架构程序,它不识别macOS本地的Mach-O格式可执行文件,这就是报错的核心原因。 - 直接执行
brew install gdb失败,是因为官方brew的gdb包仅提供x86_64版本,而你的M2属于arm64架构,二者不兼容。
解决方案
1. 安装适配arm64 macOS的GDB
通过第三方brew源安装支持arm64的gdb:
brew install --cask homebrew/cask-versions/gdb-arm64
安装完成后,直接使用gdb ./test即可调试本地编译的程序,无需再保留aarch64-elf-gdb的别名。
2. 用LLDB替代GDB
macOS原生自带LLDB,它是Apple官方调试器,完美适配arm64架构,用法和GDB接近:
lldb ./test
常用命令对应关系:run(启动程序)、breakpoint set --name main(设置断点),可以直接替代GDB使用。
3. 若需交叉调试嵌入式aarch64程序
如果你的需求是调试嵌入式aarch64程序,需要用交叉编译器编译代码,而非系统默认的gcc(实际是clang的别名):
aarch64-elf-gcc -g -o test_embedded test.c
之后执行aarch64-elf-gdb ./test_embedded就能正常调试。
内容的提问来源于stack exchange,提问作者scribe
相关产品推荐
相关产品推荐

