Ошибка отладчика Lazarus в AstraLinux
После успешной компиляции приложения в Lazarus под AstraLinux и попытке запуска появляется сообщение об ошибке отладчика: «Отладчик не смог запустить приложение». При этом окно подробностей ничего внятного не сообщает:
Причина
Вероятнее всего в таком случае виновата блокировка системных вызовов ptrace, которая активируется по-умолчанию, если не убрать соответствующую галочку при установке AstraLinux.
ptrace (от process trace) — системный вызов в Linux, который позволяет трассировать или отлаживать выбранный процесс. ptrace дает полный контроль над процессом: можно изменять ход выполнения программы, смотреть и изменять значения в памяти или состояния регистров. При этом никаких дополнительных прав не получаем — действия ограничены правами запущенного процесса.
Решение
Необходимо отключить блокировку ptrace. Сделать это можно под админом в графическом интерфейсе: Панель управления — Безопасность — Политика безопасности. Далее открываем раздел Настройки безопасности — Системные параметры. Нас интересует галочка «Блокировка трассировки ptrace для всех пользователей«. Её необходимо убрать:

После этого применяем изменения и перезагружаемся. После перезагрузки отладчик должен заработать как положено.
То же самое можно выполнить и в терминале (например, по SSH). Для проверки состояния выполняем команду:
$ systemctl is-enabled astra-ptrace-lock
Если ответ «enabled», значит блокировка включена. Выключаем её:
$ sudo astra-ptrace-lock disable
$ sudo reboot
Данная статья проверялась для AstraLinux SE 1.7.2