在 Apple Silicon 上调试和查找模拟的 x86_64 寄存器?

问题描述 投票:0回答:1

我目前使用的是 M1 MacBook Air。我想在我的本地计算机上调试 C 代码,但使用 x86_64 汇编语法和寄存器。

我尝试安装

gdb
,但在我的机器上安装起来很复杂。我也试过
UTM emulation
qemu
,他们返回
error
关于一些与gdb或调试本身相关的非特权操作。

我知道有在线免费解决方案(https://www.onlinegdb.com/)。但是在本地机器上做这件事是令人满意的。经过几天的阅读文档和修补,我找到了一个可以接受的解决方案,使用

lldb
。另外,onlinegdb 是 Linux,而不是 macOS。而且只有 GAS,而不是像 NASM 这样的其他汇编程序。

请参阅下面的解决方案。

debugging assembly gdb x86-64 apple-silicon
1个回答
0
投票

创建一个文件。

❯ 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

一切就绪。

© www.soinside.com 2019 - 2024. All rights reserved.