Я изучаю ассемблер на MacBook x86_64 с macOS 10.14.Версия nasm - 2.14, а версия lldb - 11.38.2.
Мой исходный код очень прост:
SECTION .data
EatMsg: db "Hello World", 0x0a
EatLen: equ $-EatMsg
SECTION .bss
SECTION .text
global _start
_start:
nop
mov rax,0x2000004
mov rdi,1
mov rsi,EatMsg
mov rdx,EatLen
syscall
mov rax,0x2000001
mov rdi,0
syscall
Я собираю этот файл, используя
nasm -f macho64 -F dwarf helloworld.asm
ld -e _start -no_pie -o helloworld helloworld.o -lSystem
Но когда я использую lldb:
lldb helloworld
(lldb)b helloworld.asm:16
Там написано:
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
Я видел Невозможно установить точки останова lldb и Возможно ли отладить сборку x64 в Mac OS? , и я попробовал теответы (например, -g
), но безрезультатно.