The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск языка программирования Rust 1.38"
Отправлено Ordu, 27-Сен-19 13:13 
> по моему опыту [i]сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках[/i] это те проблемы, которые можно решить в относительно короткое время

Ты везучий. Мне приходилось и по два дня сидеть, отлавливая причину сегфолта. Ну, то есть, разадресация NULL как причина находится легко, но если в коде при этом разадресуется указатель, который _никак_не_может_быть_NULL_!!!, то значит реальная причина сегфолта где-то в другом месте, в том коде который записал в этот указатель NULL. А это может быть, если по-хорошему, вообще любой кусок кода. Конечно, с большей вероятностью, проблема в каком-то куске кода который явно работает с этим указателем. Но это не всегда так, иногда этот кусок кода берёт другой якобы ненулевой указатель и записывает его сюда, но указатель оказывается нулевым, то есть проблема не здесь, где в указатель записывается NULL, а там откуда этот NULL пришёл. А иногда, какой-то совершенно левый код ошибается с индексом массива, вытаскивает из стека совершенно не тот указатель, который хотел, интерпретирует его как указатель на какую-то структуру, работает с ней, производит несколько рандомных изменений кучи, и так случается что сам при этом не сегфолтится и перезаписывает твой указатель нулём.

Такие штуки неплохо отлавливает valgrind, но только если он не зафлуживает при этом весь вывод руганью на libc или на ещё на какую-нибудь интересную библиотечку, которую ты подключил депендансами.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру