我目前使用的是 M1 MacBook Air。我想在我的本地计算机上调试 C 代码,但使用 x86_64 汇编语法和寄存器。
我尝试安装
gdb
,但在我的机器上安装起来很复杂。我也试过UTM emulation
,qemu
,他们返回error
关于一些与gdb或调试本身相关的非特权操作。
我知道有在线免费解决方案(https://www.onlinegdb.com/)。但是在本地机器上做这件事是令人满意的。经过几天的阅读文档和修补,我找到了一个可以接受的解决方案,使用
lldb
。另外,onlinegdb 是 Linux,而不是 macOS。而且只有 GAS,而不是像 NASM 这样的其他汇编程序。
请参阅下面的解决方案。
创建一个文件。
❯ vim main.c
编译成二进制文件(-arch x86_64)。请参阅(如何从 apple silicon 中的 C 源代码创建 x86_64 汇编文件?)。
❯ clang -g -O0 -Wall -arch x86_64 -o main main.c
[ Optional One Time Setup ]:使用此命令可以使用 intel 语法查看调试汇编代码。 (https://stackoverflow.com/a/21502943/14668175)
❯ echo "settings set target.x86-disassembly-flavor intel" >> ~/.lldbinit
使用lldb调试。 lldb 命令(https://lldb.llvm.org/use/map.html)。
❯ lldb -arch x86_64 main
一切就绪。