В комментариях к одной из моих статей про базовые команды Linux shell для тестировщиков справедливо заметили, что в ней не было указано применение команд в процессе тестирования. Я подумал, что лучше поздно, чем никогда, поэтому решил рассказать историю Backend QA-инженера Вани, который столкнулся с неожиданным поведением сервиса и попытался разобраться, где именно случилась ошибка.
Рубрика «debug» - 2
Как Иван ошибку в бэкенде локализовывал
2020-09-09 в 7:55, admin, рубрики: bash, debug, gdb, linux, networks, strace, tcpdump, Блог компании FunCorp, дебаггинг, сети, тестирование, Тестирование IT-систем, Тестирование веб-сервисовВ поиске вопросов, или как создать новый отладчик
2020-08-08 в 7:44, admin, рубрики: debug, debugger, Rust, отладка, отладчики, Программирование, системное программированиеМы уделяем много внимания инструментам разработки: участвуем в горячих спорах о редакторах (Vim или Emacs?), долго настраиваем IDE под свой вкус, и тщательно выбираем языки программирования и библиотеки, которые с каждым днем становятся все лучше и удобнее. Однако, здесь можно выделить одну категорию, которая по какой-то причине остается незаслуженно забытой: отладчики не сильно изменились за последний десяток лет, хотя по-прежнему являются одним из базовых инструментов для отлова ошибок и навигации в коде.

Изображение: Timothy Dykes @timothycdykes, unsplash.com
Гораздо чаще мы предпочитаем быстро добавить пару printов вместо того, чтобы поставить в нужном месте точку останова и пройтись к ней отладчиком — и вопрос "почему?" не перестает меня занимать — ведь логи и printы дают ограниченную информацию и не позволяют интерактивно взаимодействовать с запущенным процессом (а отладчики могут работать даже и с "умершими" процессами!).
Одной из главных причин я вижу как раз отсутствие значительного прогресса в разработке отладчиков.
Как собрать NGINX Ingress Controller старой версии и пропатчить его
2020-05-18 в 13:31, admin, рубрики: debug, Go, golang, kubernetes, Блог компании ДомКлик, ДомКлик, ПрограммированиеВ данной HOWTO мы исправим баг в древней версии nginx ingress controller v0.20.0 и научимся работать с зависимостями Go старых версий через dep + vendor.

Отъявленные баги и как их избежать на примере ClickHouse
2020-04-23 в 6:17, admin, рубрики: c++, clickhouse, debug, баги, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, отладка, ПрограммированиеЕсли вы пишете код — готовьтесь к проблемам. Они обязательно будут, и ожидать их стоит со всех сторон: от вашего кода и компилятора, от операционной системы и железа, а еще пользователи иногда подкидывают «сюрпризы». Если вы отмасштабировали кластер до космических масштабов, то ожидайте «космических» багов. Особенно, если речь идёт о данных из интернет-трафика.
Алексей Миловидов (o6CuFl2Q) расскажет о самых нелепых, обескураживающих и безнадёжных проблемах из его опыта разработки и поддержки ClickHouse. Посмотрим, как их приходилось отлаживать и какие меры принимать разработчикам с самого начала, чтобы проблем было меньше.
Читать полностью »
Не давайте имена потокам из ThreadPool при отладке в VS
2020-03-29 в 20:52, admin, рубрики: c++, debug, multithreading, threadpool, vs, отладка, разработка под windowsВ некотором 2017 году, во время отладки в VS, производительность в проекте падала на ~80%, превращая игру в сборник различных ассинхронных кадров. Виновником торжества стала функция SetThreadName внутри пула. Читать полностью »
Скроллбар, который не смог
2020-03-19 в 9:53, admin, рубрики: c++, debug, open source, pvs-studio, terminal emulator, Блог компании PVS-Studio, отладка, разработка под windows
Недавно вышла новая версия Windows Terminal. Всё бы ничего, но работоспособность её скроллбара оставляла желать лучшего. Поэтому настало время немного потыкать в него палкой и сыграть на бубне.
Читать полностью »
ELFийские трюки в Go
2019-12-29 в 15:56, admin, рубрики: asm, debug, disasm, elf, Go, golang, x86, zydis, Компиляторы, ненормальное программирование, системное программирование
В этой заметке мы научимся получать машинный код Go функции прямо в рантайме, распечатаем его с помощью дизассемблера и по пути узнаем несколько фокусов вроде получения адреса функции без её вызова.
Предупреждение: ничему полезному эта мини-статья вас не научит.
CLion 2019.3 уже здесь! Повышенное быстродействие редактора и самые долгожданные новые возможности
2019-12-09 в 9:45, admin, рубрики: C, c++, CLion, concepts, coverage, debug, Блог компании JetBrains, Программирование, С++20Привет!
Многие уже начинают готовиться к новогодним праздникам, закупать подарки, кто-то планирует путешествия на длинные новогодние выходные. А у нас в JetBrains пока еще горячая пора выпуска релизов продуктов. Cегодня я спешу поделиться с вами новостями о недавно вышедшем релизе нашей кроссплатформенной среды разработки для C и C++ — CLion 2019.3.

Основной целью этого релиза было, как бы пафосно это ни прозвучало, качество. Мы решили сфокусироваться на проблемах, которые давно беспокоят наших пользователей, — в первую очередь, производительность и отзывчивость редактора, а во вторую — баги, недоделки и очень востребованные, но отсутствующие возможности.
Для начала, коротко о самом главном в этом релизе:
- Улучшения быстродействия и отзывчивости редактора, в первую очередь автодополнение, реализованное в нашем движке на базе Clangd.
- Ninja-генератор в CMake, настройки CMake по умолчанию и другие улучшения проектной модели.
- Обновления в интеграции с отладчиками.
- Новое действие для переключения между заголовочными и сорс-файлами.
- Более точный анализ кода: новая проверка для виртуальных функций, а также проверка правописания в CMake и в комментариях Doxygen.
- Поддержка концептов из стандарта C++20.
- Метрики покрытия кода.
- WSL2, правила форматирования и именования от Microsoft, обновления VCS поддержки и многое другое.
Ниже поговорим подробнее, но если вы готовы попробовать уже сейчас, то заходите и скачивайте билд с нашего сайта. Как обычно, доступна бесплатная пробная версия на 30 дней.
Читать полностью »
Простой USB-UART преобразователь с гальванической развязкой
2019-11-29 в 12:29, admin, рубрики: cp2102, debug, diy или сделай сам, uart, usb, изолятор, программирование микроконтроллеров, Производство и разработка электроники, схемотехника, Электроника для начинающихВ процессе разработки электронных устройств под управлением микроконтроллеров, часто возникает задача передать какие-то данные с устройства на компьютер или наоборот. Вероятно самым простым способом является использование USB-UART переходников, которых существует великое множество, но я решил сделать свой «велосипед» и поделиться результатом с вами.
У меня стояла задача сделать для себя любимого простой, дешевый, компактный и главное гальванически развязанный преобразователь USB-UART. Основной кейс для меня — отладка через printf по uart, да да, я в курсе про SWO и иные методы, но мне удобнее работать именно с uart-ом. Наличие изоляции для меня критично, т.к. в основном мне приходится проектировать силовые преобразователи, которые могут легко спалить, например, usb порт моего ноутбука. Правда если у вас в устройствах нет высокого напряжение, то расслабляться тоже не стоит, какие-нибудь 12В так же прекрасно могут вывести из строя ваш ПК. Разумеется не стоит забывать и о помехах, гальваническая развязка частично препятствует попаданию всякой гадости в usb порт.
Как видите у развязанных преобразователей интерфейсов одни плюсы, но тут некоторые возразят: «Зачем? Все же есть на Алиэкспресс». Тут ответ простой — меня не устроили ни цена готового устройства, ни его габариты, ни качество. В итоге за пару часов я «изобрел велосипед», который удовлетворит все мои хотелки и после изготовления получилось вот так:

Хотите обезопасить свои usb порты и узнать зачем так много? Тогда поехали :))
Читать полностью »


