Отладка обработки ошибок
May. 3rd, 2009 01:24 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Если отладить нормальную работу программы это еще куда ни шло, то отладить работу программы в случае когда ей пришел трындец - это что-то достаточно трудоемкое. Потому что обычно нормальная работа хорошо разбивается на отдельные тесты, если у программы кошерная модульная архитектура, а вот сломаться программа может во всех мыслимых и немыслимых комбинациях.
Особо хорошо таким заниматься в ISAPI фильтре для IIS, написанном на чистом С. Там даже вывод в лог и то ломается от малейшего чиха, а компилятор спокойно без ворнингов и ошибок компилирует такую херь, что смотреть страшно.
Например, в функцию передается указатель на функцию, а я передал указатель на структуру, где эти указатели лежат - компилятору пофиг.
Или десятки вариаций функций с именем типа (_)(s,w)print(f,w) - безопасные и небезопасные, виндовские и от С-рунтайма, одни возвращают код ошибки, другие валятся с исключением при переполнении буфера, грохая весь w3wp.exe. А всего-то хотелось вывести сообщение об другой ошибке, да.
Особо хорошо таким заниматься в ISAPI фильтре для IIS, написанном на чистом С. Там даже вывод в лог и то ломается от малейшего чиха, а компилятор спокойно без ворнингов и ошибок компилирует такую херь, что смотреть страшно.
Например, в функцию передается указатель на функцию, а я передал указатель на структуру, где эти указатели лежат - компилятору пофиг.
Или десятки вариаций функций с именем типа (_)(s,w)print(f,w) - безопасные и небезопасные, виндовские и от С-рунтайма, одни возвращают код ошибки, другие валятся с исключением при переполнении буфера, грохая весь w3wp.exe. А всего-то хотелось вывести сообщение об другой ошибке, да.
no subject
Date: 2009-05-03 11:27 am (UTC)The financial markets have crashed. One important reason seems to be the trading in financial derivatives. These derivatives can be so complex that it’s very hard to estimate their value. Now if only there was a domain specific language for describing and evaluating such financial contracts…
A few weeks ago, GMail had a ma jor outage. Edwin Brady pointed out a press release by Google that blamed ‘unexpected side effects of some new code’ — now if only there was some way to ensure code doesn’t have side effects…
This leads me to believe that Haskell is currently solving problems that will affect society in ten years or so.
http://www.haskell.org/sitewiki/images/8/85/TMR-Issue13.pdf
no subject
Date: 2009-05-03 12:53 pm (UTC)no subject
Date: 2009-05-03 01:16 pm (UTC)