Одна вещь, которую вы не говорите, это то, насколько гибко вы должны решить проблему.Можете ли вы, например, остановить систему и просто запустить приложение?Также насколько важны эти сбои для решения?
Я предполагаю, что по большей части вы делаете.Это может потребовать большого количества ресурсов.
Краткосрочный шаг состоит в том, чтобы поместить тонны «утверждений» (частично рукописных) каждой переменной, чтобы убедиться, что она не изменилась, когда вы этого не хотите.Это может продолжать работать, когда вы проходите через длительный процесс.
Долгосрочный - попробуйте запустить его на кластере из двух (может быть, ваш домашний компьютер и виртуальная машина).Вы все еще видите segfaults.Если не увеличить размер кластера, пока вы не начнете видеть segfaults.
Запустите его на минимальной конфигурации (чтобы получить ошибки сегмента) и запишите все ваши входные данные до сбоя.Автоматизируйте работу системы с записанными вами входами, настраивая их до тех пор, пока вы не добьетесь последовательного сбоя с минимальным вводом.
В этот момент посмотрите вокруг.Если вы все еще не можете найти ошибку, то вам придется запросить еще раз с некоторыми дополнительными данными, которые вы собрали в ходе этих прогонов.