Олександр
На x86 используется cpuid.
Ioann_
Олександр
Понятно, что библиотека - набор свичей.
Berkus
Berkus
Anonymous
А можно ли tuition на cppcon считать за платные курсы по программированию?
Evgenii
🦥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
Вот я тож подумал
🦥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 может для меня расшифровать в каком месте стека и в каких регистрах должно оказаться значение той или иной переменной при заданном наперед стеке вызовов (в наличии).
Berkus
Matwey
Как это не может?
Berkus
Для этого ему придется самому исполнить весь этот набор вызовов вместе с потенциальными багами
Berkus
Ну как он тебе предскажет trashed stacks например?
Matwey
А я его не прошу
Berkus
Ты если имеешь дамп регистров то можешь сам по дизасму ядра посмотреть что там лежит
Matwey
Я же сказал, что у меня есть и дамп регистров и дамп стека
Matwey
Я хочу просто чтобы мне кто-то подписал, что регистр r1 хранил переменную size и она равна 42.
Matwey
Дампа полной памяти, естественно нету, но там для меня ничего интересного и нет, скорее всего
Berkus
Berkus
Addr2line и вот это все
Berkus
Советую radare2 или аналогичное
Oscar Teição
Шалом есть тут кто шарит в написании GLSL шейдеров?Ну или знакомыве мб етсь
Danil
Ioann_
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?
Stanislav
Daniil
Что делать, если после компиляции статических библиотек Опенссл 1.1.1 на винде, некоторые функции объявлены в заголовочных файлах, но не реализованы?
kitsu
Daniil
Спасибо, буду искать тогда нужную версию
Egor
возможно при сборке флаги не были выставлены
Daniil
Да вроде ставил, хотя хз
kitsu
да не, скачай 1.0.1 и будет работать
после апдейта точно также перестали некоторые проекты собираться
Daniil
Daniil
У меня в проекте есть код с гитхаба, зависимый от openssl и Curl, я вот хз что делать
Daniil
Да, пишу для винды
Daniil
Лаааадно... Попробую, буду гуглить. Если что, код брал отсюда https://github.com/exmo-dev/exmo_api_lib/tree/master/с%2B%2B
Ioann_
Уязвимости так то всюду есть. Кек.
Anonymous
Всем привет!
Читал литературу по С++ и возник вопрос: чем отличается массив указателей от указателя на массив, кроме как самого объявления?
Berkus
Anonymous
Массива указателей( ex. CAT *pCat[20]; ) от указателя на массив (ex. CAT *pCat = new CAT [20];)
kitsu
В первом конструкторы не вызываются
IharOK
Evgenii
Evgenii
@supapro
Berkus
да, это материал для @supapro
Anonymous
Понял.Спасибо!)
Viacheslav
Square
Square
Архитектура х86 же? Если все как ты написал - то ослабленный порядок вполне подходит
Viacheslav
Нет, архитектур три штуки надо поддерживать. x86, sparc and power pc. Все 64 бита.
Square
О, ну паверписи точно надо гайды читать
Square
У них там memory reorder дикий же какой то
Viacheslav
Под капотом есть библиотека работы с atomic variables, которая всё это абстрагирует. Мне, по идее, главное, чтобы чтение/запись самих указателей были atomic, потому что с ними никакой дополнительный ресурс не связан. Если несколько потоков выполнят do_stuff для одинаковых входных данных, то никто от этого не умрёт.
Square
Square
Square
Viacheslav
А чо за либа? Не стд что ли?
Если бы. Блумберговская внутренняя. У нас из-за этого говна мамонта на солярис и аикс до сих пор приходится legacy тянуть.
Viacheslav
https://github.com/bloomberg/bde/blob/master/groups/bsl/bsls/bsls_atomic.h
Viacheslav
Вот тут они что-то в опенсорс кидали.
Square
Ептыть
Viacheslav
Там не всё, что внутри есть, но много открыто.
Square
Я думаю проблем не должно быть
Square
Но за спарк почитал б
Viacheslav
Ага. Наружу я и отдаю обычный указатель. Цель — внутри метода не блокировать зря мьютекс для оптимистичного случая, когда данные уже прочитаны, ибо медленно очень.
Viacheslav
Спарк да, весёлый зверь.