Среда отладки с кодом на экране ноутбукаФото: Daniil Komov / Pexels ← Все темы Тема Bashdays

Debug

Методы отладки и диагностики: поиск ошибок в Linux системах, сервисах и DevOps процессах.

75материалов
Сначала новые

Статьи по теме

Страница 5 из 7

debug

Как найти узкое место в pipe через strace

Используем strace с измерением времени системных вызовов, чтобы увидеть блокировку записи в Linux pipe. Разбираем сложную команду и находим скачок задержки после заполнения буфера объёмом 65536 байт.

Фото: AlphaTradeZone / Pexels
linux

Почему ls теряет цвета в pipe

Исследуем, почему ls отключает ANSI-цвета при передаче вывода через pipe. С помощью strace находим ENOTTY, подменяем результат ioctl и возвращаем управляющие последовательности опциями color=always и cat -v.

Фото: luis gomes / Pexels
bash

Почему Bash-цикл зависает после grep -m1

Исследуем бесконечный Bash-цикл, канал до grep -m1 и незаметный SIGPIPE. Смотрим коды сигналов, процессы подоболочки и способы корректно остановить cat после закрытия конвейера.

Фото: Pavel Danilyuk / Pexels
debug

Как отлаживать sed с помощью strace

Практическое знакомство со strace на примере редактирования файла командой sed. По системным вызовам openat, read, write и rename разбираем работу временного файла и поиск ошибок доступа.

Фото: cottonbro studio / Pexels
debug

Как найти зависание PHP-FPM с помощью strace

Практический разбор зависания PHP-FPM и ошибки 502 Bad Gateway с помощью strace и lsof. По файловому дескриптору находим недоступный Elasticsearch, из-за которого воркер перестаёт обрабатывать запросы.

Фото: Ron Lach / Pexels
linux

Почему base64 превращается в Jase64

Разбираем странный вывод Jase64 вместо base64 с помощью strace и системного вызова write. Смотрим, как ESC-последовательности проходят через псевдотерминал и почему эмулятор терминала скрывает первый символ сообщения об ошибке.

Фото: Pixabay / Pexels
bash

Как работает eval в Bash

Разбираем двойную обработку команд в Bash через eval на примерах brace expansion, косвенного раскрытия переменных и файловых дескрипторов. Показываем, почему перенаправление с переменной требует ещё одного прохода интерпретатора.

Фото: Ryleigh Gordon / Pexels
linux

Как отладить core dump в Linux

Включаем создание core dump через sysctl и ulimit, намеренно вызываем segmentation fault в программе на C и исследуем дамп памяти в GDB. По стеку и значению указателя находим причину падения и исправляем код.

Фото: Nicolas Foster / Pexels
linux

Как восстановить удалённый лог через файловый дескриптор

Воспроизводим ситуацию, когда процесс продолжает писать в удалённый лог через открытый файловый дескриптор. Восстанавливаем содержимое через /proc, а затем с помощью GDB переключаем работающий процесс на новый файл без …

Фото: Nicolas Foster / Pexels
linux

Как OOM Killer выбирает процессы в Linux

Разбираемся, почему Linux при нехватке памяти завершает не обязательно самый большой процесс. Смотрим oom_score и oom_adj, меняем вероятность завершения процесса и задаём OOMScoreAdjust в systemd-юните.

Фото: Sharath G. / Pexels
О направлении

Что входит в тему

Debug — подборка материалов по диагностике, поиску неисправностей и расследованию проблем в Linux и инфраструктуре.

В разделе публикуются материалы по:

  • Анализу логов
  • strace
  • systemd
  • Производительности серверов
  • Диагностике сетей
  • Отладке приложений
  • Мониторингу
  • Troubleshooting

Здесь собраны практические руководства и реальные примеры поиска причин ошибок, нестабильной работы сервисов и деградации производительности.