Есть несколько подобных вещей. В основном они неполны по сравнению с gdb — например, обратные трассировщики редко печатают информацию об аргументах функций или локальных переменных, но gdb может это сделать. Также gdb часто может раскручиваться в тех случаях, когда другие разматыватели захлебываются.
Во всяком случае, один из них, о котором я знаю, это elfutils. https://fedorahosted.org/elfutils/. У него есть разматыватель в разработке (не уверен, что он уже есть, проверьте git).
Также есть libbacktrace. Он является частью gcc и предназначен для раскручивания в процессе. Тем не менее, его, возможно, можно было бы адаптировать к основным файлам.
Есть еще либувинд. Я слышал, что это ужасно, но YMMV.
Следует отметить, что многие из них требуют наличия отладочной информации.
И последнее замечание: ребята из ABRT проделали большую работу в области «поймать след». ABRT использует ловушку ядра, чтобы поймать дамп ядра во время его создания. Затем он выполняет анализ, загружая ядро на сервер, файлы с ошибками и т. Д. Возможно, вы могли бы повторно использовать большую часть их работы. Есть и другие работы в этом пространстве.
Типа свалка мозга, надеюсь поможет.
person
Tom Tromey
schedule
14.08.2013
gdb
. Почему вы не рассматриваете возможность установки gdb на серверы? Зачем все усложнять? - person   schedule 15.08.2013