assembly 在苹果芯片上调试和查找模拟x86_64寄存器?

z18hc3ub  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(154)

我目前使用的是M1 MacBook Air。我想在本地计算机上调试C代码,但要使用x86_64汇编语法和寄存器。
我试着安装gdb,但是在我的机器上安装很复杂。我也试过UTM emulationqemu,他们返回error一些与gdb或调试本身相关的非特权操作。
我知道有在线免费的解决方案(https://www.onlinegdb.com/).但是在本地机器上做这件事是令人满意的.经过几天的阅读文档和修补,我发现一个可接受的解决方案使用lldb .此外,onlinegdb是Linux,而不是macOS.只有GAS,而不是其他汇编器,如NASM.
下面是解决方案。

bbmckpt7

bbmckpt71#

创建文件。

❯ vim main.c

将其编译为二进制(-arch x86_64)。参见(How can I create a x86_64 assembly file from C source code in apple silicon?)。

❯ clang -g -O0 -Wall -arch x86_64 -o main main.c

[可选一次性设置]:使用此命令查看具有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

一切就绪。

相关问题