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
Vyacheslav
Думаю, где-то бага. Не вижу разницы в перемещении адреса и вызове по адресу.
Vyacheslav
Там битность glibc правильно указана?
Anonymous
Для линкера разница есть, видимо
Eugene
Там битность glibc правильно указана?
Команды компиляции я указал, где ещё указывать разрядность можно? :)
електр🟢нік ✙🟠рчбеч ඞ
електр🟢нік ✙🟠рчбеч ඞ
тоже такая дичь была
Eugene
Привет всем! Кто-нибудь знает, где можно почитать про динамическое расширение стека? Чё-т не могу нагуглить толком. Подробности механизма в WIndows и в Linux. Может ли он сжиматься в каких-либо случаях и т.д.
Eugene
Там же, кажется, через Stack Fault или Page Fault это происходит?
Eugene
Про обратные механизмы (сжатие) я не слышал что-то.
Vyacheslav
Маловероятно, что сжатие есть. Неиспользованные страницы будут просто перенесены в своп
Eugene
Короче, хочу найти прям описание всех этих процессов подробное. От авторитетных людей или «от производителя» :)
Vladimir
Там же, кажется, через Stack Fault или Page Fault это происходит?
#SF будет работать только в 32-битном режиме, где есть контроль предела сегмнта. Только через #PF. Впрочем, стек мало отличается от другой области памяти с динамическим выделением страниц.
Eugene
#SF будет работать только в 32-битном режиме, где есть контроль предела сегмнта. Только через #PF. Впрочем, стек мало отличается от другой области памяти с динамическим выделением страниц.
Я о том, как это в винде и лине. По идее, раз нет какой-нибудь хрени а-ля «сборщика мусора» и старые страницы стека вряд ли будут освобождаться, а не просто в pagefile сбрасываться, тогда с чего бы ему сжиматься? Но и без этого есть нюансы. В винде по 4к надо отгрызать, в лине, как я понял, можно сразу всё.
Eugene
Может, ещё какое-то ньюансы...
Eugene
Вот тут какое-то описание технологии есть (пп.5.2, 6.3): http://caslab.csl.yale.edu/workshops/hasp2016/HASP16-17.pdf Но это просто описание (типа рекомендаций) без привязки к Windows/Linux.
­
/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
Не в курсе.
dukeBarman
dukeBarman
Olly уже можно смело к Старым относить, как и Immunity
dukeBarman
Плюс на данный момент WinDbg лагерь на два разделился, новый модный на си шарпе и старенький, но верный
🦥Alex Fails
Anonymous
Плюс на данный момент WinDbg лагерь на два разделился, новый модный на си шарпе и старенький, но верный
Кстати а ты не в курсе, там как с обратной совместимостью в новом вдбг? Скрипты старые поддерживает? Питон канает?))
Anonymous
Гдб скриптуется питоном, может виндбг тоже?
dukeBarman
Pykd очень расширяет возможности windbg, если не пробовали, то советую
dukeBarman
Кстати а ты не в курсе, там как с обратной совместимостью в новом вдбг? Скрипты старые поддерживает? Питон канает?))
нет, пока старые скрипты не гоняли. Очень надеялись, что они встроили свой msec скрипт в новую версию, но оказалось, он теперь в их приватном спрингфилде =\ только
Dolphin
а как связан питон и windbg
Мошт уже Терминатора против этого бардака?
Dolphin
Для контроля демографии )
Dolphin
Хз, в трех чатах не вижу ботов
Eugene
У нас в одном чате стоит @BucklerBot, норм работает. Люди не с первой попытки проходят 🤣
­
У нас в одном чате стоит @BucklerBot, норм работает. Люди не с первой попытки проходят 🤣
Я тя умоляю, мне человек 30 написало «пачиму я нажал кнопку а миня забанили???»
Anonymous
Я тя умоляю, мне человек 30 написало «пачиму я нажал кнопку а миня забанили???»
Скорее боты не работают нормально, чем написавшие тупят.
Eugene
Я тя умоляю, мне человек 30 написало «пачиму я нажал кнопку а миня забанили???»
«Ножаль канопка» Я тоже думаю, что бот может тупить. Попробуйте поменять, и тогда видно будет, что толку просто рассуждать? Хуже ж не будет...
Anonymous
Скорее боты не работают нормально, чем написавшие тупят.
Ну не знаю помоему все просто и понятно с бртом
­
/ban
Dolphin
Dolphin
Самый лоулевел 🙂
Anonymous
А кроме windbg для отладки 64х драйверов человечество более ничего не придумало полезного? Вот раньше хорошо было: софтайс, syser. А сейчас чем колупать потроха?
JeisonWi
Можно ещё Virtual KD
Eugene
Самый лоулевел 🙂
Прикольно. Это подо что?
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 работает только с памятью. Бред какой-то.
Eugene
Нашёл! vinsertf128 ymm0,ymm0,xmm0,1 Кпирует снизу вверх. Пипец!
Eugene
Или так: vperm2f128 ymm0,ymm0,ymm0,0x0 Но это всё равно в 2 этапа, дальше всё равно vshufpd нужно делать. Поищу, может, можно разом всё сделать...
Eugene
Теперь та же проблема с vhaddpd — сложить все double'ы 🤦🏻‍♂️ upd: Поменял алгоритм в этом месте, сделал по-другому (даже лучше), но по поводу этих вопросов всё равно интересно...
­
Что за v9938? Ещё один драйвер дисплея?
електр🟢нік ✙🟠рчбеч ඞ
електр🟢нік ✙🟠рчбеч ඞ
насколько я знаю
Eugene
Капеееееец... Поиск простых чисел от 0 до 10 млн. Через SSE (по 2 числа) - 2 секунды, AVX (по 4 числа) - 11 секунд. Это что за ускорение такое? Sandy Bridge.
Eugene
Ryzen 5 2500U оба примерно по 0.7 сек, но AVX не опережает (иногда даже чуток отстаёт). Жесть какая-то! Может, я косячу где-то, но в целом алгоритмы похожи...
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
Ну тут два варианта как всегда :) либо фасм это может, либо не может
Aiwan \ (•◡•) / _bot
Ну тут два варианта как всегда :) либо фасм это может, либо не может
уверен что может, но вот только понимание препроцессора нужно хорошее
bilka00
уверен что может, но вот только понимание препроцессора нужно хорошее
Последний раз когда я пытался пользоватся предпроцесором фасма я пошел и написал скрипи на питоне который выполнял нужные функции
bilka00