vak: (Default)
[personal profile] vak
Однако сурово я обломался с трассировкой на архитектуре arm32! Как выяснилось, линуксное ядро не поддерживает пошаговое выполнение для 32-битных ARM-ов. На arm64 отлично идёт, а на той же Olinuxino - фиг вам. Вызов ptrace(PTRACE_SINGLESTEP) возвращает EIO. И по той же причине не будет работать на mips или на riscv. Пичалька.

Я и начинал-то с единственной целью: выяснить механизм вызова функций из разделяемых библиотек на arm32. Линкер генерит хитрые процессорные инструкции в таблице переходов, которые самообновляются при первом вызове.

Хотя бы на arm64 можно пользоваться, и то хлеб:
Starting program: ./hello-arm64-linux
sp = 0xffffcdbaed60
pstate = 0x1000
0x0000000000400078: d2800808 movz x8, #0x40
r8 = 0x40
pstate = 0x201000
0x000000000040007c: d2800020 movz x0, #0x1
r0 = 0x1
0x0000000000400080: 90000001 adrp x1, #0x400000
r1 = 0x400000
0x0000000000400084: 91027021 add x1, x1, #0x9c
r1 = 0x40009c
0x0000000000400088: d28001a2 movz x2, #0xd
r2 = 0xd
0x000000000040008c: d4000001 svc #0
Hello world!
r0 = 0xd
0x0000000000400090: d2800ba8 movz x8, #0x5d
r8 = 0x5d
0x0000000000400094: d2800000 movz x0, #0
r0 = 0
0x0000000000400098: d4000001 svc #0
Process exited normally.

Date: 2024-12-15 07:35 (UTC)
nms: (Default)
From: [personal profile] nms
У меня создается впечатление что поддержка техники минулых лет не просто замораживается, а вполне сознательно стремительно уничтожается.
Edited Date: 2024-12-15 07:35 (UTC)

Date: 2024-12-16 02:39 (UTC)
x86128: (Default)
From: [personal profile] x86128
а вроде ж были какие-то debug и jtag интерфейсы и расширения ? или тут речь именно о программной трасировке?

Date: 2024-12-15 07:52 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Аналогичную трассировку должно быть можно в `QEMU` настроить.

Date: 2024-12-15 10:14 (UTC)
prool: cat (Default)
From: [personal profile] prool
/me вспомнил инженерную панель ЕС ЭВМ (она же IBM/360)

а также отладочную панель самодельного компьютера Микро-80 на процессоре К580ИК80А

Хоть я и программист, а не электроник, но аппаратные решения я люблю

Date: 2024-12-15 12:05 (UTC)
tiresome_cat: (NewYearCat)
From: [personal profile] tiresome_cat
"инженерную панель ЕС ЭВМ"

Да, очень Новогодняя тема :)