Eugene
Вызываю malloc из nasm'а, компилю (nasm -f elf64 unit.asm -o unit.o)
Затем компилю исходник на Си (gcc -m64 -s -O2 prog.c unit.o -o prog), получаю такое сообщение:
relocation R_X86_64_PC32 against symbol `malloc@@GLIBC_2.2.5' can not be used when making a shared object; перекомпилируйте с параметром -fPIC
Ключ -fPIC не помогает. Что не так, как решить?
Ubuntu x64
Eugene
Vyacheslav
Думаю, где-то бага. Не вижу разницы в перемещении адреса и вызове по адресу.
Vyacheslav
Там битность glibc правильно указана?
Anonymous
Для линкера разница есть, видимо
Vyacheslav
Eugene
електр🟢нік ✙🟠рчбеч ඞ
електр🟢нік ✙🟠рчбеч ඞ
тоже такая дичь была
Vladimir
Eugene
Привет всем!
Кто-нибудь знает, где можно почитать про динамическое расширение стека? Чё-т не могу нагуглить толком.
Подробности механизма в WIndows и в Linux. Может ли он сжиматься в каких-либо случаях и т.д.
Eugene
Там же, кажется, через Stack Fault или Page Fault это происходит?
Eugene
Про обратные механизмы (сжатие) я не слышал что-то.
Vyacheslav
Маловероятно, что сжатие есть. Неиспользованные страницы будут просто перенесены в своп
Eugene
Короче, хочу найти прям описание всех этих процессов подробное. От авторитетных людей или «от производителя» :)
Eugene
Может, ещё какое-то ньюансы...
Eugene
Вот тут какое-то описание технологии есть (пп.5.2, 6.3): http://caslab.csl.yale.edu/workshops/hasp2016/HASP16-17.pdf
Но это просто описание (типа рекомендаций) без привязки к Windows/Linux.
Mikhail
/ban
Кое-кто не спит...
Eugene
🐞 Каким отладчиком вы пользуетесь чаще всего?
anonymous poll
gdb (и его обёртками) – 11
👍👍👍👍👍👍👍 22%
Никаким – 8
👍👍👍👍👍 16%
x64dbg / x32dbg – 7
👍👍👍👍 14%
Встроенным в IDE – 7
👍👍👍👍 14%
IDA Pro – 6
👍👍👍👍 12%
OllyDbg – 4
👍👍👍 8%
WinDbg – 3
👍👍 6%
Другим – 3
👍👍 6%
Старым (SoftICE, TD, AFD и пр.)
▫️ 0%
👥 49 people voted so far.
kitsu
странно, что ллдб нет в списке
он кажется в маках по дефолту
Ned
и во фряхе
Eugene
Eugene
Не в курсе.
dukeBarman
dukeBarman
Olly уже можно смело к Старым относить, как и Immunity
dukeBarman
Плюс на данный момент WinDbg лагерь на два разделился, новый модный на си шарпе и старенький, но верный
🦥Alex Fails
🦥Alex Fails
Anonymous
Гдб скриптуется питоном, может виндбг тоже?
dukeBarman
Pykd очень расширяет возможности windbg, если не пробовали, то советую
Dolphin
Для контроля демографии )
Dolphin
Хз, в трех чатах не вижу ботов
Eugene
У нас в одном чате стоит @BucklerBot, норм работает.
Люди не с первой попытки проходят 🤣
Anonymous
Anonymous
Anonymous
/ban
Dolphin
Dolphin
Самый лоулевел 🙂
Anonymous
А кроме windbg для отладки 64х драйверов человечество более ничего не придумало полезного? Вот раньше хорошо было: софтайс, syser. А сейчас чем колупать потроха?
JeisonWi
JeisonWi
Можно ещё Virtual KD
Anonymous
Eugene
Подскажите, как расбродкастить младший double на весь ymm0 ?
vshufpd ymm0,ymm0,ymm0,0 работает отдельно с младшей и старшей половиной.
Т.е. было ymm0 = A,B,C,D, стало A,A,C,C, а надо A,A,A,A.
Нужно через AVX, без AVX2.
Eugene
Или хотя бы как наверх перекинуть снизу.
vmovlhps не работает с ymm, только xmm (странно, что vmovlhpd нет).
vmovhpd работает только с памятью.
Бред какой-то.
kitsu
Подскажите, как расбродкастить младший double на весь ymm0 ?
vshufpd ymm0,ymm0,ymm0,0 работает отдельно с младшей и старшей половиной.
Т.е. было ymm0 = A,B,C,D, стало A,A,C,C, а надо A,A,A,A.
Нужно через AVX, без AVX2.
емнип что-то было с копированием gp регистра, мб этого будет достаточно
Eugene
Нашёл!
vinsertf128 ymm0,ymm0,xmm0,1
Кпирует снизу вверх.
Пипец!
Eugene
Или так:
vperm2f128 ymm0,ymm0,ymm0,0x0
Но это всё равно в 2 этапа, дальше всё равно vshufpd нужно делать.
Поищу, может, можно разом всё сделать...
Eugene
Теперь та же проблема с vhaddpd — сложить все double'ы 🤦🏻♂️
upd: Поменял алгоритм в этом месте, сделал по-другому (даже лучше), но по поводу этих вопросов всё равно интересно...
Dolphin
Что за v9938? Ещё один драйвер дисплея?
електр🟢нік ✙🟠рчбеч ඞ
електр🟢нік ✙🟠рчбеч ඞ
насколько я знаю
Eugene
Капеееееец...
Поиск простых чисел от 0 до 10 млн.
Через SSE (по 2 числа) - 2 секунды, AVX (по 4 числа) - 11 секунд.
Это что за ускорение такое?
Sandy Bridge.
Eugene
Ryzen 5 2500U оба примерно по 0.7 сек, но AVX не опережает (иногда даже чуток отстаёт).
Жесть какая-то!
Может, я косячу где-то, но в целом алгоритмы похожи...
Dolphin
Eugene
А вообще, я немного удивился, увидев в Instruction Tables от Агнера Фога, что некоторые инструкции AVX работаеют в 3-4 раза медленнее, чем SSE.
Типа vsqrtps vs sqrtps, vdivsd vs divsd... И такая ситуация вплоть до Broadwell, только в Skylake они примерно наравне.
Понятно, что это тяжёлые операции, но всё же.
Eugene
Итак, результаты разбора проблемы с AVX.
Нельзя смешивать SSE и AVX !!!
После замены comisd на vcomisd скорость возросла (ВНИМАНИЕ!!!) с 11 до 2.6 секунд! После замены остальных (cvtsi2sd → vcvtsi2sd, movq → vmovq, sqrtsd → vsqrtsd) скорость почти сравнялась с вариантом SSE (но SSE получился всё равно чуть-чуть быстрее), т.е. стала 2.3 сек.
(Sandy Bridge).
Ryzen 5 (2500U) ничего не изменилось 😁, как было в районе 0.7 и SSE, и AVX, так и осталось.
Anonymous
Интересно конпиляторы об этом знают?
Eugene
Я думаю, должны...
Eugene
Наверняка в манах это написано.
Aiwan \ (•◡•) / _bot
fasm позволяет такого вида конструкции
invoke MessageBox,HWND_DESKTOP,invoke GetCommandLine,invoke GetCommandLine,0
тоесть в invoke тоже можно использовать invoke, вложенный инвок выполняется раньше основного.
а как сделать примерно тоже самое, вот только типа
mov ecx, invoke Beep,500,500
так чтоб в есх был рузультат фуекции, то есть eax.
хочу попробовать аналог FUNC как в masm32
Aiwan \ (•◡•) / _bot
кто нить такое уже делал? есть какие наработки?
bilka00
Я даже не знал что так можно
Anonymous
Ну тут два варианта как всегда :) либо фасм это может, либо не может
bilka00