Я компилирую C ++ в * nix и хотел бы создать дамп стека
а) в произвольной точке программы,
б) во время любого сигнала, особенно во время SIGSEGV.
Google говорит мне, что ptrace, вероятно, является инструментом для работы, но я не могу найти каких-либо понятных примеров обхода стека. Получение обратного адреса, да, но как насчет СЛЕДУЮЩЕГО обратного адреса? А как насчет извлечения символического имени функции в этот момент? Что-то связанное с DWARF?
Большое спасибо, если вы можете сказать мне, куда идти отсюда.