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

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

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

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

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


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

33 ответов

26 просмотров

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

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- Автор вопроса

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта