metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-01-06 01:02 pm

Программистсткие комплексы

"Отладочные логи и вызовы профилировщика в код вставляют только трусы, неудачники и /забыл слово для тех, кто плохо работает из-за своей тупости/, которые не могут программу написать правильно и эффективно сразу".

[identity profile] 1ceheart.livejournal.com 2009-01-07 11:19 am (UTC)(link)
Если вы читали мой коммент внимательно, вы бы заметили, что там написано "для дров". Если в обработчике прерывания будет происходить printf и lzma, вы сильно удивитесь, что это у вас Core2 Duo окошки перерисовывает со скоростью 386.

Простой текстовый лог, конечно, удобней, но не всегда.

[identity profile] kiryl.livejournal.com 2009-01-07 12:39 pm (UTC)(link)
Если у вас обработчик прерывания настолько сложен, что требует логирования чего-либо кроме ошибок, то вы, очевидно, пишете что-то не правильно.

[identity profile] metaclass.livejournal.com 2009-01-07 01:45 pm (UTC)(link)
Вот про это я и написал "логи пишут только трусы и неудачники".
Потому что настоящие гуру и ковбои от программирования сразу пишут правильно, а причину проблем у клиента узнают с помощью телепатической силы.

[identity profile] kiryl.livejournal.com 2009-01-07 02:40 pm (UTC)(link)
В обработчике прерывания, если всё верно спроектировано верно, выполняется очень мало работы и отладить его не очень сложно.

[identity profile] 1ceheart.livejournal.com 2009-01-07 04:22 pm (UTC)(link)
А логи пишут только трусы и неудачники :)

[identity profile] blackyblack.livejournal.com 2009-01-10 08:02 am (UTC)(link)
Логи из обработчика прерывания не очень удачная идея. Да и этот самый бинарный лог тоже может навернуться - его кто будет анализировать?

[identity profile] 1ceheart.livejournal.com 2009-01-10 11:55 am (UTC)(link)
Не самая, но как-то отлаживать нужно. Breakpoint-то туда можно поставить только один раз по понятным причинам, а просто DbgPrint таки вносит коррективы :) Конечно, есть и плугин к kd, и если сказать /debugport=1394, то даже и с DbgPrint можно жить, но тем не менее.

Для слива и анализа бинарных логов они там дают тулзу. Все это довольно надежно работает, как ни странно.

Разумеется, оставлять даже бинарный лог в обработчике прерывания в релизе не сильно кошерно. Хотя некоторые оставляют, а некоторые даже это оговаривают в спецификации, что WMI tracing должен быть в релизе. Там действительно performance overhead очень маленький.