Size: a a a

Rust — русскоговорящее сообществo

2020 October 01

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Оптимизатор имеет право заменить его на raise(SIGSEGV) и сегфолт будет :)
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Хитро)
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Или заменить на чтение из какого-то другого  места в памяти
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Dollar Føølish
В расте нет сегфолта
раст язык. Сегфолт происходит в ОС.

Конечно в расте его нет. А из-за кода на рсте - легко
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Ну я дал пример как можно прочитать нуль без сегфолта
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Или записать
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Dollar Føølish
Ну я дал пример как можно прочитать нуль без сегфолта
а я дал пример как прочитать с сегфолтом. Чтобы доказать что что-то возможно достаточно это продемонстрировать - я это сделал
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
С сегфолтом можно прочитать любой поинтер
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Просто отмапишь перед этим страницу
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Суть в том что уб гарантируется, а сегфолт нет
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
О чем я изначально и сказал
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Я же не говорил что уб не будет
источник

МП

Максим Петров... in Rust — русскоговорящее сообществo
Кстати, не подскажете, как растовый рантайм реагирует на сигналы от ОС? В си, если память не изменяет, что-то происходит в libc до захода в main, а что в rust?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Максим Петров
Кстати, не подскажете, как растовый рантайм реагирует на сигналы от ОС? В си, если память не изменяет, что-то происходит в libc до захода в main, а что в rust?
Какие сигналы ты обрабатываешь до захода в main?..
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Механизм тот же. Ты ставишь хендлер
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Растровый рантайм в этом смысле нулевой
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Никакой разницы с сишной программой
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
До захода в main в C происходит несколько довольно тривиальных операций, которые не особо связаны с обработкой сигналов
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Не только тривиальные. Там выполняется секция .ctors, и ещё тред локал ключи инициализируются
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Если речь про либц
источник