Welcome! Log In Create A New Profile

Advanced

Re: Исправления срабатываний статического анализатора.

Evgeniy Berdnikov
October 04, 2022 01:54PM
On Tue, Oct 04, 2022 at 11:33:14PM +0700, Eugene Grosbein wrote:
> 04.10.2022 20:11, Evgeniy Berdnikov пишет:
> > При потенциальной возможности зануления указателя следует ловить и
> > обрабатывать такое исключение. В противном случае нет смысла в проверке.
> > Задача же не в ублажении тупых анализаторов, а в правильной работе кода.
>
> Как пользователь разнообразного софта, могу доложить, что сегфолт очень фиговая обработка исключений.
> Проверка указателя на NULL перед разадресацией в том случае, когда нельзя гарантировать что он не NULL,
> практически всегда благо.

Ну, я написал что такую ситуацию нужно ловить всегда, т.е. MUST а не SHOULD.

> Другой вопрос, что потом делать, если вдруг: молча восстановиться и ехать дальше,
> или не молча, а с сообщением в лог, или выдать даже stack trace и выйти. Но что угодно лучше сырого сегфолта.

Был бы я пользователем, я бы тоже так считал, наверное... Но поскольку я
сисадмин с некоторым запилом в разработку, то думаю иначе: вставить в свою
софтину полноценный обработчик сегфолта, с анализатором стека и печатью
регистров, чтобы по функционалу всё было не хуже gdb -- это очень непросто.
Корпорации размера Оракл могут себе такое позволить, и нанять кучу
фултайм-саппортеров на разборку трейсов, а для широкой публики нет ничего
эффективней сборки без стрипа -> coredump -> gdb -> "bt full" и анализа
содержимого регистров, памяти, etc.

Конечно, если софтина mission critical, и останавливаться ей никак нельзя,
то нужно думать об обработке сбоев. Но в большинстве случаев это можно
решить дизайном: например, при сегфолте в рабочем процессе автоматически
запускать новый, отмечать сбой в логе / e-mail, а корку оставлять админу
на изучение.
--
Eugene Berdnikov
_______________________________________________
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-leave@nginx.org
Subject Author Posted

Исправления срабатываний статического анализатора. Attachments

Korobov Vladimir via nginx-ru October 04, 2022 08:02AM

Re: Исправления срабатываний статического анализатора.

Slawa Olhovchenkov October 04, 2022 09:06AM

RE: Исправления срабатываний статического анализатора.

Korobov Vladimir via nginx-ru October 05, 2022 01:24AM

Re: Исправления срабатываний статического анализатора.

Slawa Olhovchenkov October 05, 2022 05:14AM

RE: Исправления срабатываний статического анализатора.

Korobov Vladimir via nginx-ru October 05, 2022 05:26AM

Re: Исправления срабатываний статического анализатора.

Evgeniy Berdnikov October 05, 2022 05:34AM

RE: Исправления срабатываний статического анализатора.

Korobov Vladimir via nginx-ru October 05, 2022 06:20AM

Re: Исправления срабатываний статического анализатора.

Slawa Olhovchenkov October 05, 2022 06:12AM

RE: Исправления срабатываний статического анализатора.

Korobov Vladimir via nginx-ru October 05, 2022 06:20AM

Re: Исправления срабатываний статического анализатора.

Evgeniy Berdnikov October 04, 2022 09:14AM

Re: Исправления срабатываний статического анализатора.

Eugene Grosbein October 04, 2022 12:34PM

Re: Исправления срабатываний статического анализатора.

Evgeniy Berdnikov October 04, 2022 01:54PM

Re: Исправления срабатываний статического анализатора.

Eugene Grosbein October 04, 2022 03:36PM

Re: Исправления срабатываний статического анализатора.

Evgeniy Berdnikov October 04, 2022 03:56PM

Re: Исправления срабатываний статического анализатора.

Eugene Grosbein October 04, 2022 04:12PM

Re: Исправления срабатываний статического анализатора.

Maxim Dounin October 04, 2022 02:14PM

RE: Исправления срабатываний статического анализатора.

Korobov Vladimir via nginx-ru October 05, 2022 01:36AM

Re: Исправления срабатываний статического анализатора.

Илья Шипицин October 05, 2022 04:30AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 181
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready