Добрый день. Мне в качестве наследия былых времен досталась софтина, написанная частично на С, частично на С++, частично левой ногой.
Сейчас я пытаюсь её рефакторить и развивать, но наткнулся на давно завалявшийся баг, который раньше лечился костылем - перезапуском каждую минуту.
Суть: в течении некоторого времени, от 2мин до пары часов, программа завершается с кодом 0, то есть вполне корректно. При этом не используется exit(0) вообще нигде. Выход из main всего один и попадать туда программа не должна - перед «return 0» есть блокирующий вызов.
Можно как-то при помощи GDB или других средств просмотреть последние 10/100/etc вызовов функций этой программы, чтобы найти точку выхода? Софтина многопоточна ко всему прочему.