Не так давно, на заре этого тысячелетия, холодным ноябрьским днем 2004го я сел писать эмулятор сервера для некой онлайн игры. Писалось мне весьма хорошо, на радующем глаз C# и .Net Framework версии 1.1. Особых целей перед собой я не ставил, а опыт имел сравнительно небольшой. По какой-то причине сообщество оценило эту поделку (может, потому что она появилась раньше официального старта основной игры?) и через несколько месяцев я столкнулся с взрывным ростом онлайна, а заодно и серьезными проблемами производительности. Проект прожил 6+ лет, достиг заметных высот (2500 онлайна в пике, порядка 20000 MAU), а затем и почил в бозе. И вот спустя полтора десятилетия я решил сделать собственную ММО игру на тех же “проверенных временем” наработках и столкнулся с аналогичными же проблемами, не смотря на то, что они были уже единожды мною решены.
Читать полностью »
Рубрика «отладка» - 6
Череда проблем длиною в 16 лет
2020-11-30 в 7:22, admin, рубрики: .net, C#, MMO, нет ума - строй сервера, отладка, разработка игр, сервер, Серверная оптимизацияБаг в ESP-IDF: MDNS, Wireshark и при чём тут единороги
2020-11-29 в 17:53, admin, рубрики: esp32, esp8266, idf, IoT, mDNS, multicast, open source, wi-fi, wireshark, отладка, программирование микроконтроллеров, Разработка для интернета вещейВсем привет. Я занимаюсь коммерческой разработкой в IoT, в основном мы используем модули от Espressif - ESP8266 и ESP32.
В рамках "догфудинга" мы иногда берём свои продукты домой и используем в повседневной жизни. И вот, однажды, от одного из сотрудников поступила жалоба: после установки новой тестовой прошивки на устройстве, его домашняя сеть сначала начала жестоко глючить и зависать, а потом ситуация нормализовалась, но наш девайс более не был виден ни в локальной сети, ни в облаке.
Как я участвовал в IOCCC-’19 (и проиграл). Часть 2: «Симулятор NOR»
2020-08-29 в 19:26, admin, рубрики: C, IOCCC, конкурс, отладка, системное программированиеЭто вторая часть цикла статей о том, как я участвовал в IOCCC'19
- Как я участвовал в IOCCC-'19 (и проиграл). Часть 1: «Крестики-нолики»
- Как я участвовал в IOCCC-'19 (и проиграл). Часть 2: «Симулятор NOR»
Я надеюсь, что данная статья поможет вам при разборе чужого кода или кода после декомпилятора или обфускатора.
Если вы еще не знаете, что такое IOCCC или вы хотите ознакомиться с более простым вариантом запутанного кода, то рекомендую обратиться к первой части.
Всем остальным я желаю приятного чтения.
Почему язык С не помешает вам делать ошибки
2020-08-14 в 10:48, admin, рубрики: C, Блог компании Mail.Ru Group, никто не читает теги, отладка, Программирование, стандарты
Если вкратце: потому что мы так сказали.
:)
Ладно, это слишком короткое объяснение для статьи, дорогой читатель, и мои провокационные слова требуют объяснения.
Встреча Комитета по языку С — которую сначала планировали провести в германском Фрайбурге, но не срослось по понятным причинам, — завершилась 7 августа. Она прошла хорошо, мы продвинулись по всем фронтам. Да, мы действительно продвигаемся, уверяю вас, и язык С не умер.
Читать полностью »
В поиске вопросов, или как создать новый отладчик
2020-08-08 в 7:44, admin, рубрики: debug, debugger, Rust, отладка, отладчики, Программирование, системное программированиеМы уделяем много внимания инструментам разработки: участвуем в горячих спорах о редакторах (Vim или Emacs?), долго настраиваем IDE под свой вкус, и тщательно выбираем языки программирования и библиотеки, которые с каждым днем становятся все лучше и удобнее. Однако, здесь можно выделить одну категорию, которая по какой-то причине остается незаслуженно забытой: отладчики не сильно изменились за последний десяток лет, хотя по-прежнему являются одним из базовых инструментов для отлова ошибок и навигации в коде.
Изображение: Timothy Dykes @timothycdykes, unsplash.com
Гораздо чаще мы предпочитаем быстро добавить пару print
ов вместо того, чтобы поставить в нужном месте точку останова и пройтись к ней отладчиком — и вопрос "почему?" не перестает меня занимать — ведь логи и print
ы дают ограниченную информацию и не позволяют интерактивно взаимодействовать с запущенным процессом (а отладчики могут работать даже и с "умершими" процессами!).
Одной из главных причин я вижу как раз отсутствие значительного прогресса в разработке отладчиков.
SRE: Анализ производительности. Способ настройки с использованием простого вебсервера на Go
2020-08-02 в 18:25, admin, рубрики: Go, webserver, Блог компании Southbridge, настройка, отладка, профилирование производительности, Серверное администрирование, системное администрированиеАнализ производительности и настройка — мощный инструмент проверки соответствия производительности для клиентов.
Анализ производительности можно применять для проверки узких мест в программе, применяя научный подход при проверке экспериментов по настройке. Эта статья определяет общий подход к анализу производительности и настройке с использованием в качестве примера вебсервера на Go.
Go тут особенно хорошо подходит, поскольку у него есть инструменты профилирования pprof
в стандартной библиотеке.
Исправляем графический баг Mass Effect, возникающий на современных процессорах AMD
2020-07-27 в 6:19, admin, рубрики: amd, AMD FX, AMD Ryzen, intel, Игры и игровые приставки, обратная разработка, отладка, погрешности округления, Процессоры, реверс-инжиниринг, точность представления чисел
Введение
Mass Effect — популярная франшиза научно-популярных RPG. Первая часть сначала была выпущена BioWare в конце 2007 года эксклюзивно для Xbox 360 в рамках соглашения с Microsoft. Спустя несколько месяцев, в середине 2008 года, игра получила порт на PC, разработанный Demiurge Studios. Порт был достойным и не имел заметных недостатков, пока в 2011 году AMD не выпустила свои новые процессоры на архитектуре Bulldozer. При запуске игры на PC с современными процессорами AMD в двух локациях игры (Новерия и Илос) возникают серьёзные графические артефакты:

Да, выглядит некрасиво.
Хоть это и не делает игру неиграбельной, такие артефакты раздражают. К счастью, решение существует, например, можно отключить освещение консольными командами или модифицировать карты игры, удалив поломанные источники освещения, но, похоже, никто никогда так и не понял полностью причины этой проблемы. В некоторых источниках утверждается, что эту проблему позволяет устранить и мод FPS Counter, но мне не удалось найти информацию о нём: исходный код мода, похоже, не выложен онлайн, а документация о том, как мод исправляет ошибку, отсутствует.
Почему эта проблема так интересна? Баги, возникающие только на оборудовании отдельных производителей, встречаются довольно часто, и в играх они встречаются уже много десятилетий. Однако, по моей информации, это единственный случай, когда проблема с графикой вызвана процессором, а не графической картой. В большинстве случаев проблемы возникают у продуктов определённого производителя GPU и никак не касаются CPU, однако в данном случае всё совсем наоборот. Поэтому эта ошибка уникальна, а значит, её стоит исследовать.
Читать полностью »
Отслеживание ошибок в приложении React с помощью Sentry
2020-07-20 в 7:27, admin, рубрики: devops, React, Sentry, отладка, Тестирование IT-систем, Тестирование веб-сервисовСегодня я расскажу вам об отслеживании ошибок в реальном времени в приложении React. Приложение внешнего интерфейса обычно не используется для отслеживания ошибок. Некоторые компании часто откладывают отслеживание ошибок, возвращаясь к нему после документации, тестов и прочего. Однако, если вы можете изменить свой продукт в лучшую сторону, то просто сделайте это!