Олександр
На x86 используется cpuid.
Ioann_
https://github.com/vstakhov/rspamd/blob/master/src/libcryptobox/cryptobox.c#L136
Почему кстати асм, а не интринсиком ?
Олександр
Понятно, что библиотека - набор свичей.
Anonymous
А можно ли tuition на cppcon считать за платные курсы по программированию?
🦥Alex Fails
Сейчас веду трансляцию с конференции DEFCON во МТУСИ. Можно посмотреть либо в instagram.com/supapro.cxx , либо на ютубе https://m.youtube.com/channel/UC3bNps2_BGL_j25t-zSuYow (но ютуб падла бажит! Следите за анонсами в ленте) #defcon #stream
🦥Alex Fails
Таймлайн слотов. 14:30/14:40 - Приветствие 14:40/15:30 - Дмитрий Скляров - Intel ME: описание файловой системы для флеш носителей 15:30/15:40 - Перекур! 15:40/16:40 - Максим Горячий, Марк Ермолов - Внутри Intel Management Engine 16:40/17:00 - Перекур с перекусом! 17:00/17:50 - Сергей Голованов - Indecent Response 2018 17:50/18:00 - Перекур! 18:00/18:50 - Олег Купреев, Владимир Путин - Свой драйвер с нуля для кастомного NVMe устройства: читаем флэш-память iPhone 7 18:50/19:00 - Перекур! 19:00/19:40 - Алиса Белоусова - Защищенное тунелирование данных в известные интернет-протоколы на примере работающего проекта 19:40/20:00 - Q/A, закрытие 14й встречи
Berkus
Indecent или incident? :)
🦥Alex Fails
Вот я тож подумал
Matwey
Господа. Подскажите пожалуйста по gdb опять
Berkus
Так ты спрашивай сначала!
Matwey
У меня такая проблема. Я раньше использовал gdb в связке с kgdb и очень удобно через rs232 терминал ковырялся в кишочках ядра. А сейчас у меня нет такой возможности (rs232). Есть только сообщение об OOPS. Я хочу исследовать проблему статически, т.е. как если бы у меня был core-dump. У меня есть сам бинарик ядра и его отладочные символы в отдельном файле. Это всё я знаю как скормить gdb. Что я не знаю как скормить: 1) Как перенести backtrace из текстового вида сообщения OOPS в gdb, чтобы мне можно было как обычно делать frame X по bt 2) Как установить регистры в нужное значение и загрузить кусочек памяти (стек), чтобы gdb мог мне показать чему равны локальные переменные в заданном frame.
Anonymous
1,2) Тебе надо core-dump ядра.
Anonymous
AFAIK такую хрень точно можно провернуть при панике, насчёт OOPS — без понятия.
Matwey
Про kdump я тоже знаю, но вопрос не про него
Berkus
Да, для этого используется коредамп
Matwey
Я считаю что я хочу логичную вещь. gdb может для меня расшифровать в каком месте стека и в каких регистрах должно оказаться значение той или иной переменной при заданном наперед стеке вызовов (в наличии).
Matwey
Как это не может?
Berkus
Для этого ему придется самому исполнить весь этот набор вызовов вместе с потенциальными багами
Berkus
Ну как он тебе предскажет trashed stacks например?
Matwey
А я его не прошу
Berkus
Ты если имеешь дамп регистров то можешь сам по дизасму ядра посмотреть что там лежит
Matwey
Я же сказал, что у меня есть и дамп регистров и дамп стека
Matwey
Я хочу просто чтобы мне кто-то подписал, что регистр r1 хранил переменную size и она равна 42.
Matwey
Дампа полной памяти, естественно нету, но там для меня ничего интересного и нет, скорее всего
Berkus
Addr2line и вот это все
Berkus
Советую radare2 или аналогичное
Oscar Teição
Шалом есть тут кто шарит в написании GLSL шейдеров?Ну или знакомыве мб етсь
Vitaliy ◀️TriΔng3l▶️
Alexander "SonnySlave"
😂
Viacheslav
Так, господа, вопрос по memory model. Есть у меня, допустим, вот такой псевдокод: if atomic_pointer != invalid_marker return atomic_pointer pointer = do_stuff(...) atomic_pointer = pointer return pointer Цель простая — закешировать результат операции. do_stuff внутри уже синхронизирован. Операция там весьма дорогая, поэтому spin вокруг неё делать смысла нет. Возвращается всегда одно и то же значение для заданных входных параметров. Я правильно понимаю, что в этом случае мне достаточно relaxed store and load?
Daniil
Что делать, если после компиляции статических библиотек Опенссл 1.1.1 на винде, некоторые функции объявлены в заголовочных файлах, но не реализованы?
Daniil
Спасибо, буду искать тогда нужную версию
Egor
возможно при сборке флаги не были выставлены
Daniil
Да вроде ставил, хотя хз
kitsu
да не, скачай 1.0.1 и будет работать после апдейта точно также перестали некоторые проекты собираться
Daniil
У меня в проекте есть код с гитхаба, зависимый от openssl и Curl, я вот хз что делать
Daniil
Да, пишу для винды
Daniil
Лаааадно... Попробую, буду гуглить. Если что, код брал отсюда https://github.com/exmo-dev/exmo_api_lib/tree/master/с%2B%2B
Ioann_
Уязвимости так то всюду есть. Кек.
Anonymous
Всем привет! Читал литературу по С++ и возник вопрос: чем отличается массив указателей от указателя на массив, кроме как самого объявления?
Anonymous
Массива указателей( ex. CAT *pCat[20]; ) от указателя на массив (ex. CAT *pCat = new CAT [20];)
Nikita
Массива указателей( ex. CAT *pCat[20]; ) от указателя на массив (ex. CAT *pCat = new CAT [20];)
Первый статический, находится на стеке. Второй динамический, создается в куче. Если ничего не путаю 🙂
kitsu
В первом конструкторы не вызываются
Berkus
Массива указателей( ex. CAT *pCat[20]; ) от указателя на массив (ex. CAT *pCat = new CAT [20];)
в первом случае в массиве хранятся УКАЗАТЕЛИ которые должны куда-то указывать во втором - в массиве лежат сами объекты типа CAT
Evgenii
@supapro
Berkus
да, это материал для @supapro
Anonymous
Понял.Спасибо!)
Square
Архитектура х86 же? Если все как ты написал - то ослабленный порядок вполне подходит
Viacheslav
Нет, архитектур три штуки надо поддерживать. x86, sparc and power pc. Все 64 бита.
Square
О, ну паверписи точно надо гайды читать
Square
У них там memory reorder дикий же какой то
Viacheslav
Под капотом есть библиотека работы с atomic variables, которая всё это абстрагирует. Мне, по идее, главное, чтобы чтение/запись самих указателей были atomic, потому что с ними никакой дополнительный ресурс не связан. Если несколько потоков выполнят do_stuff для одинаковых входных данных, то никто от этого не умрёт.
Viacheslav
А чо за либа? Не стд что ли?
Если бы. Блумберговская внутренняя. У нас из-за этого говна мамонта на солярис и аикс до сих пор приходится legacy тянуть.
Viacheslav
https://github.com/bloomberg/bde/blob/master/groups/bsl/bsls/bsls_atomic.h
Viacheslav
Вот тут они что-то в опенсорс кидали.
Square
Ептыть
Viacheslav
Там не всё, что внутри есть, но много открыто.
Square
Я думаю проблем не должно быть
Square
Но за спарк почитал б
Viacheslav
Ага. Наружу я и отдаю обычный указатель. Цель — внутри метода не блокировать зря мьютекс для оптимистичного случая, когда данные уже прочитаны, ибо медленно очень.
Viacheslav
Спарк да, весёлый зверь.