Как стать автором
Обновить
15.33
Рейтинг

Отладка *

Поиск и устранение ошибок в коде

Сначала показывать
Порог рейтинга

Simics: Забиваем гвозди сваебоем

Блог компании Auriga Assembler *Системное программирование *Виртуализация *Отладка *
Tutorial

Любите ли вы отзывчивые программы так, как люблю их я? Любовь эта привела меня к Колибри ОС - невероятно шустрой операционной системе, которая запускает программу до того, как вы осознаете, что кликнули по ней. И недавно у неё нашли уязвимость: ping of death.

Так получилось, что моя первая работа была связана с симуляцией компьютерных систем – от серверов до мобильных устройств. И там мы использовали симулятор Simics. Этой системой пользуются крупные производители железа для опережающей разработки драйверов.

Если бы только можно было использовать Simics для отладки любительской ОС...

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 1.9K
Комментарии 2

Новости

Приглашаем на онлайновый митап про нативный фаззинг в 1.18 Go и его особенности

Блог компании «Лаборатория Касперского» Тестирование IT-систем *Программирование *Отладка *Go *
В четверг, 22 сентября, в 16 часов (МСК) мы проведем онлайновый митап под названием «Фаззинг и обработка ошибок в 1.18 Go».

UPD: В свете известных событий митап переносится. Регистрируйтесь, и мы пришлём вам информацию о новой дате.

Наши коллеги, пишущие на Go, дадут максимум практики. Они покажут, как кодить, чтобы фаззинг-тестам было проще находить в этом коде баги. А также разберут, по каким принципам тест может понять, когда он смог сломать тестируемый код, и как переписать тесты, чтобы найти пачку внезапных багов.



Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 1.1K
Комментарии 1

Стенд для тестирования плат после монтажа

Отладка *Прототипирование *Производство и разработка электроники *

Доброго времени суток, Хабр!      

Хочу затронуть тему тестирования готовых изделий. Что такое стенд, что он должен в себя включать и почему же тестирование необходимо?

Поехали!
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 3.1K
Комментарии 12

Настоящий детектив: загадочные таймауты на проде

Блог компании VK Анализ и проектирование систем *Отладка *

Привет! Меня зовут Алексей, я работаю в команде Антиспама Почты Mail.ru, и сегодня хочу поделиться интересным опытом нашей команды по поиску проблем на бою. 

Многие из нас любят детективные истории: интрига, драйв, захватывающий сюжет, который держит в напряжении до самого конца, когда раскрывается загадка. Ровно такие же ощущения испытываешь, когда разбираешься с проблемами на проде. 

Этот пост — детектив со всеми его элементами: загадочная история с превышением времени до таймаута, круг подозреваемых (среди которых сервисы, прокси и сеть), команда разработчиков-сыщиков, собирающих и изучающих улики и ставящих следственные эксперименты, и непредсказуемая развязка.  

Читать далее
Всего голосов 71: ↑71 и ↓0 +71
Просмотры 9.1K
Комментарии 25

Edge AI чипы от Kneron. Ныряем в прошивку

Блог компании MTS AI Отладка *Реверс-инжиниринг *Программирование микроконтроллеров *

Dive

Привет, я Антон Маслов, ведущий разработчик в MTS AI.


В предыдущей своей статье я рассказывал в общих чертах о том, что это за чипы такие от Kneron (микроконтроллеры со встроенными нейроускорителями), что такое нейроускоритель, чем так интересна технология периферийного искусственного интеллекта Edge AI, и как вообще с этим работать. А еще о том, как на чипе KL520 запустить систему распознавания изображений с помощью нейросети Tiny YOLOv3.


Теперь я расскажу о самой важной части, о прошивке чипов. О том, из чего она состоит, как собирается, как вообще устроен софт такой навороченной многоядерной системы на кристалле, как KL520. Поделюсь историей и опытом миграции из одного компилятора в другой.


Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 942
Комментарии 0

Устранение утечек памяти с помощью профилирования

Блог компании RUVDS.com Клиентская оптимизация *Серверная оптимизация *Серверное администрирование *Отладка *
Перевод

Если система работает длительное время, объём свободной памяти может уменьшаться, что может приводить к отказу некоторых сервисов. Это типичная проблема утечки памяти, которую обычно сложно спрогнозировать и выявить. Удобными инструментами для решения подобных проблем являются профайлеры кучи. Они отслеживают распределение памяти и помогают разобраться, что находится в куче программы, а также найти утечки памяти.

В этой статье мы расскажем об использовании профайлеров кучи, а также объясним, как спроектированы и реализованы популярные профайлеры кучи, например, профайлер кучи Go, gperftools, jemalloc и Bytehound.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 4.9K
Комментарии 0

Украшаем молоток: как автоматизировать разбор проблем в дебаггере

Блог компании «Лаборатория Касперского» Open source *Программирование *C++ *Отладка *
Ошибки и проблемные ситуации, которые возникают при работе высоконагруженных систем, имеют свои особенности и специфику. У нас в «Лаборатории Касперского» накопился целый ряд приемов по анализу таких ошибок. Часть приемов мы выложили в опенсорс в виде библиотеки скриптов для отладчиков, где есть в том числе JS-скрипты для WinDBG и Python-скрипты для GDB. В этой статье на живых примерах будет показано, как их использовать, и как автоматизировать хотя бы часть процесса анализа ошибок и подозрительных ситуаций.

cover
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.6K
Комментарии 0

PVS-Studio для проверки лабораторных работ на C и C++

Блог компании PVS-Studio Программирование *C++ *Отладка *C *

C++ error: "pointer being freed was not allocated


Встретил очередной вопрос на Stack Overflow от человека, изучающего язык C++. Количество подобных вопросов можно сократить, используя PVS-Studio. Человек сразу может получить ответ, не отвлекая других.

Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 2K
Комментарии 7

Отладка, модификация и устранение багов в сторонних 32-х и 64-х разрядных приложениях под ОС Windows

Программирование *Отладка *Реверс-инжиниринг *

В этой статье я хочу поделиться практическими методами отладки, модификации и устранения багов в 32-х и 64-х разрядных приложениях под ОС Windows, разработанных на языке C/C++, исходные коды которых по тем или иным причинам не стали достоянием общественности.

Этот пробел отчасти можно попытаться устранить, например, с помощью плагина Hex-Rays для IDA Pro, и зачастую удаётся довольно качественно восстановить нужный участок исходного кода, обнаружив в нём проблемное место. Но после этого всегда возникает вопрос - что с этим исправленным кодом делать дальше, как и где его можно использовать? На данном этапе мне всегда хотелось взять этот отдельно декомпилированный фрагмент программы, поменять в нём что-нибудь и затем каким-то чудесным образом «поместить обратно» в программу.

Далее будет описан один из возможных способов реализации этой идеи на практике.

Читать продолжение
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 2.7K
Комментарии 4

Тем, кто учится программировать и решил написать вопрос на Stack Overflow: «Почему код не работает?»

Блог компании PVS-Studio Программирование *C++ *Отладка *C *

PVS-Studio Online


На сайте Stack Overflow много вопросов от людей, ещё только изучающих языки программирования. Лайфхак: ответы на многие эти вопросы можно получить сразу, запустив анализатор кода. Получится быстрее.


Эту заметку меня побудила написать дискуссия "Segmentation fault when converting char * to char **" на сайте Stack Overflow. Человек, изучающий программирование, интересуется, что не так с его кодом.

Читать дальше →
Всего голосов 20: ↑15 и ↓5 +10
Просмотры 5.5K
Комментарии 9

Как отлаживать коллекции Java с Lightrun на продакшене

Блог компании SkillFactory Программирование *Java *Отладка *
Перевод
Tutorial

К старту курса по разработке на Java делимся руководством о том, как отлаживать коллекции Java на продакшене с платформой Lightrun и избегать при этом неприятностей с методом list.toArray(). За подробностями приглашаем под кат.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.8K
Комментарии 0

Видеоускоритель Apple и невозможный баг

Работа с 3D-графикой *Отладка *Реверс-инжиниринг *Видеокарты Процессоры
Перевод
В конце 2020 года компания Apple выпустила M1 — первого представителя собственной архитектуры GPU под названием AGX, по слухам, созданной на основе серии Imagination PowerVR. С тех пор мы занимались реверс-инжинирингом AGX и созданием опенсорсных графических драйверов. В январе прошлого года я отрендерила треугольник при помощи своего собственного кода, но с тех пор нас продолжал преследовать ужасный баг:

Драйвер не справлялся с рендерингом больших количеств геометрии.

Вращающийся кубик отрисуется нормально, низкополигональная геометрия тоже, но детализированные модели не рендерились. GPU рендерил только часть модели, а потом останавливался.


Частично отрендеренный по Фонгу кролик

Сложно было определить, какой объём мы можем рендерить без сбоев. Это зависело не только от сложности геометрии. Одна и та же геометрия могла рендериться с простыми шейдерами, но давать сбой со сложными.
Читать дальше →
Всего голосов 53: ↑53 и ↓0 +53
Просмотры 11K
Комментарии 18

Как мы в команде Oracle-разработки организовали deploy

Блог компании Совкомбанк Технологии Oracle *Отладка *

Сегодня мы поделимся решением, которое используем для установки релизов на нескольких системах наших заказчиков. Однако синхронизацию данных на стендах в рамках данного материала рассматривать не будем, поскольку это большой отдельный вопрос, хотя и частично связанный с deploy.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 2K
Комментарии 11

Как мы теряли игроков из-за того, что они платили за игру

Разработка игр *Отладка *C# *Unity *
Перевод
image

Представьте, каково это — найти серьёзный баг в продакшене сразу после выпуска игры. Представьте, что этот баг вредит только платным пользователям. Представьте, что игра зависает сразу после того, как игроки завершают внутриигровую покупку. Представьте, что когда игрок перезапускает игру, она зависает при запуске. Представьте, что игроку так и не удаётся запустить игру и приходится её удалять. Представьте, что ваше приложение в этот момент находится в рекомендованных Apple Store. Эта статья — рассказ о таком баге, худшем из всех, что я видел за тридцать лет программирования. Это история о том, как мы его выявили и совместно с разработчиками Unity работали над его устранением.
Читать дальше →
Всего голосов 65: ↑61 и ↓4 +57
Просмотры 38K
Комментарии 11

Простой способ обнаружить retain cycle в UIViewController

Разработка под iOS *Objective C *Отладка *Swift *
Tutorial

ViewController — это один из компонентов, где обычно происходит утечка памяти, поскольку именно он чаще всего используется для хранения множества частей кода вместе. Одна ошибка, и в итоге вы получаете утечку.

Apple предлагает отличный инструмент для отладки утечек памяти. Часто для этого используется метод print в deinit.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 1.5K
Комментарии 3

Приглашаем на онлайновый митап про системы сборки С++ кодовой базы

Блог компании «Лаборатория Касперского» Программирование *Совершенный код *Отладка *
В четверг, 28 апреля, в 16 часов (МСК) мы проведем онлайновый митап под названием «Kaspersky Tech: Из CMake в Bazel. Переход для большой кодовой базы С++». Наши C++-разработчики из команд Engineering Productivity, которые используют системы сборки плюсового кода CMake и Bazel и переводят большие проекты с одной на другую, расскажут о своем опыте и проблемах, с которыми им довелось столкнуться.



Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 1.4K
Комментарии 0

Основы работы отечественных МК 1986ВЕ1Т с болгарскими отладчиками OLIMEX ARM-USB-OCD-H. Часть 2 — RAM & Interruptions

Отладка *C *Программирование микроконтроллеров *Процессоры
Tutorial

Изначально вторая главазадумывалась только, как шпаргалка по работе из оперативной памяти, но делать и разбираться в этом не очень трудно. Основная "запара" может настигнуть несведущего именно при работе с прерываниями. Собсна, решено объединить.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 4K
Комментарии 6

Основы работы отечественных МК 1986ВЕ1Т с болгарскими отладчиками OLIMEX ARM-USB-OCD-H. Часть 1 — Первый запуск

Отладка *C *Программирование микроконтроллеров *
Из песочницы
Tutorial

Во первых строках сего письма хочется сказать, что идея написать эту статью пришла из-за того, что волею судьбы мне пришлось работать с микроконтроллерами компании Миландр. Помимо того, что информации по сети не так много, она еще и достаточно разрознена. И все бы ничего - кто ищет, тот найдет. Но пришлось (за неимением ничего другого под рукой) отлаживать программы при помощи эмулятора от Olimex. Тут стало тяжелее и было решено хоть как-то систематизировать знания для таких же зеленых бедолаг, как я, которые, возможно, столкнутся с подобными проблемами.

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 9.1K
Комментарии 14

Как я винду по-реверсерски чинил

Отладка *Реверс-инжиниринг *
Tutorial

Ваша винда не работает как хотелось бы? Все советы из поисковика перепробовали установили Linux, а оно всё равно не работает? Вы реверс-инженер или кто вообще, ну в самом деле!? Применим свои навыки владения отладчиком, поможем Шиндовс нормально (по мере её сил) работать!

На написание данной статьи меня подтолкнула злость. Злость на поделие от индусских говнокодеров под названием Windows, на то, что гугол выдаёт мне абсолютно нерабочие решения столетней давности. И вот, когда даже обновление до 11-й винды (с сохранением всех настроек и программ), а потом ещё и установка её же поверх себя не помогли, я решил, что нужно подойти с другой стороны - не как пользователь, а как реверс-инженер.

Читать далее
Всего голосов 157: ↑152 и ↓5 +147
Просмотры 19K
Комментарии 84

Дебаг и поиск ошибок

Программирование *.NET *Отладка *

Для опытных разработчиков информация статьи может быть очевидной и если вы себя таковым считаете, то лучше добавьте в комментариях полезных советов.

По опыту работы с начинающими разработчиками, я сталкиваюсь с тем, что поиск ошибок порой занимает слишком много времени. Не из-за того, что они глупее более опытных товарищей или не разбираются в процессах, а из-за отсутствия понимания с чего начать и на чём акцентировать внимание. В статье я собрал общие советы о том где обитают ошибки и как найти причину их возникновения. Примеры в статье даны на JavaScript и .NET, но они актуальны и для других платформ с поправкой на специфику.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 2.9K
Комментарии 1

Вклад авторов