You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Apple Silicon设备上调试并查看模拟x86_64寄存器的方案

在M1 MacBook Air上用LLDB本地调试C代码并使用x86_64汇编语法与寄存器

背景

使用M1 MacBook Air时,想要本地调试C代码并采用x86_64汇编语法及寄存器,但遇到这些问题:

  • 安装配置gdb流程繁琐
  • 使用UTM/QEMU模拟时出现调试相关的非特权操作错误
  • 虽知晓onlinegdb等在线方案,但更偏好本地操作,且onlinegdb基于Linux、仅支持GAS不支持NASM

下面是基于LLDB的可行解决方法:

步骤

1. 编译x86_64架构的C程序

用clang编译时指定x86_64架构并生成调试信息:

clang -arch x86_64 -g your_code.c -o your_code
  • -arch x86_64:强制生成x86_64架构的二进制,通过Rosetta 2运行
  • -g:生成调试符号,方便LLDB断点、查看寄存器等操作

2. 启动LLDB调试

直接用LLDB加载编译好的二进制:

lldb ./your_code

3. 设置NASM风格的x86_64汇编语法

LLDB默认可能用AT&T(GAS)语法,切换为NASM风格:

settings set target.x86-disassembly-flavor nasm

执行后用disassemble命令查看汇编代码,即可确认是NASM语法。

4. 调试时查看x86_64寄存器

  • 查看所有寄存器:
register read
  • 单步执行汇编指令并跟踪寄存器:
# 单步执行一条汇编指令
si
# 再次查看寄存器状态
register read

也可以用n单步执行源码行,之后查看寄存器变化。

额外说明

  • LLDB是Xcode Command Line Tools自带工具,若未安装可执行xcode-select --install完成安装
  • 调试的x86_64二进制通过Rosetta 2运行,LLDB会正确显示x86_64架构的寄存器状态,完全符合需求

内容的提问来源于stack exchange,提问作者Tirtharaj Pramanik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:33:11