169 похожих чатов

Отлично! Спасибо :) Я начинаю, прям супер начинаю (nasm) Разбираюсь как работает

"операнд типа память".
Пытаюсь запустить дебаг с помощью gdb, чтобы посмотреть регистры, но не выходит :(

У меня есть очень простая программа выводящая hello world, на ней и балуюсь:
Запускаю - gdb hello, дальше ставлю брейкпоинт break _start и запускаю, и получаю ошибку -

Warning:
Cannot insert breakpoint 1
Cannot access memory at address ...


При этом, если запускать без брейкпоинтов, то ошибка есть, но Hello World выводится
Что я упускаю?

33 ответов

42 просмотра

А ты собираешь с отладочной информацией?

Anton- Автор вопроса
Александр Белокопытов
А ты собираешь с отладочной информацией?

nasm -f elf -g -F dwarf hello.asm && ld -m elf_i386 hello.o -o hello Без - он кричит что нет дебаг информации

Anton
nasm -f elf -g -F dwarf hello.asm && ld -m elf_i38...

Возможно чудит твоя виртуалка, а возможно что-то не так с кодом. Можешь бинарь скинуть, я у себя проверю?

Anton- Автор вопроса
Александр Белокопытов
Возможно чудит твоя виртуалка, а возможно что-то н...

Виртуалка не то слово еще...я на М1, с parallels desktop на убунте ))

А покажи show version.

Anton- Автор вопроса
Anton
Виртуалка не то слово еще...я на М1, с parallels d...

Тут ещё и трансляция до кучи... Вполне возможно, что дело в этом

Anton
screenshot

Стоп. aarch64, а отлаживаешь ты x86? Правильный gdb пробовал?

Anton- Автор вопроса
Александр Белокопытов
Тут ещё и трансляция до кучи... Вполне возможно, ч...

Тоже так думаю...но с другой стороны, бинарь отрабатывает верно 🙁 Есть какие-то способы решения?

Anton- Автор вопроса
s54820
Стоп. aarch64, а отлаживаешь ты x86? Правильный gd...

Я так понимаю у него стоит виртуалка для x86 целиком через трансляцию

Anton- Автор вопроса
Александр Белокопытов
Я так понимаю у него стоит виртуалка для x86 целик...

Да, все так. Литературы для silicon я не нашел, довольствуюсь чем могу. У меня эмулятор x86

Александр Белокопытов
Я так понимаю у него стоит виртуалка для x86 целик...

Всё возможно, но aarch64-gdb не будет x86 отлаживать ну никак, у него даже дизасма для него нет.

Anton- Автор вопроса
s54820
Всё возможно, но aarch64-gdb не будет x86 отлажива...

А подкинете информации по установке? Возможно, я что-то криво сделал... Но вроде ставил x86

Anton
Да, все так. Литературы для silicon я не нашел, до...

silicon — обычный aarch64 (он же ARM-v8), по нему скорее всего инфу найти можно. А насчёт эмуляции — возможно в parallels есть какие-то ускорители, которые странно влияют на поведение софта.

Anton
А подкинете информации по установке? Возможно, я ч...

А, так у тебя убунта армовская таки стоит?

Anton- Автор вопроса
Anton
Нет, тут я не прозевал

Тогда почему у тебя поставился отладчик для арма?

Anton- Автор вопроса
Александр Белокопытов
Покажи /etc/apt/sources.list

Хм..а там пишет arm64/amd64 🙁 Да ладно

Anton
Хм..а там пишет arm64/amd64 🙁 Да ладно

Смесь значит, тебе нужен отладчик именно для x86

Anton- Автор вопроса
Александр Белокопытов
silicon — обычный aarch64 (он же ARM-v8), по нему ...

Что-то не нравится мне текущий мой путь...2й день бодаюсь уже. Дальше будет только хуже 🙁 Возможно, сможете посоветовать литературу? Мне вдаваться в подробности прям не нужно, я так...для себя, общего развития

Anton
Что-то не нравится мне текущий мой путь...2й день ...

По ассемблеру вне x86(_64) вообще информации немного

Anton- Автор вопроса
Александр Белокопытов
По ассемблеру вне x86(_64) вообще информации немно...

Да знаю...поэтому и пытаюсь бодаться с эмуляторами 🙁

Anton
Что-то не нравится мне текущий мой путь...2й день ...

https://t.me/ChatAssembler/117154 но ничего про книгу сказать не могу.

Anton- Автор вопроса
s54820
https://t.me/ChatAssembler/117154 но ничего про кн...

Да, видел ее, спасибо. Проблема в том, что код из книги, не запускается у меня под apple silicon

Anton- Автор вопроса
s54820
Прямо падает?

Не компилируется))

Anton
Не компилируется))

А если удалить эти директивы?

Anton- Автор вопроса
s54820
А если удалить эти директивы?

gcc -o hello hello.S Undefined symbols for architecture arm64: "_main", referenced from: <initial-undefines> ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Anton- Автор вопроса

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта