Оказалось, что это проблема конфигурации. Перемещение каталога ~/.ddd
так, чтобы ddd
использовал свежую конфигурацию, решило проблему.
Это объясняет, почему он работал с sudo, поскольку он выполнялся от имени пользователя root, у которого не было испорченной конфигурации.
Стоит упомянуть, что моя интерпретация вывода strace
также была неверной. Это нормальное поведение, когда цикл recvmsg
возвращает EAGAIN
("Ресурс временно недоступен"). Это означает только то, что приложение опрашивает сокет на предмет событий. Именно так оно взаимодействует с X11.