У меня встроенная система ARM Cortex-M4 с FreeRTOS. Я применил механизм дампа журнала сбоев, который записывает файл на устройство хранения в случае фатальной ошибки, такой как деление на ноль, нуль-указатель, ошибки адреса, неверная инструкция или утверждения. В этом файле я пишу, среди прочего, содержимое стека во время исключения.Инструменты для извлечения трассировки стека FreeRTOS/ARM/C++ из дампа стека и файла .elf?
Эта система фиксирует сбои, которые происходят в поле, поэтому идея состоит в анализе аварий, которые мне возвращают, и, насколько мне может быть, определить источник проблемы. Я могу легко подключить журнал к .elf, который был сгенерирован, когда была скомпилирована эта версия кода. Мне просто нужен способ разобрать его.
Я предполагаю, что есть инструменты, которые могут это сделать уже (я не могу сделать это первым), но мне трудно найти что-то в серии трубок (tm), которая соответствует счету.
Есть ли хорошая отправная точка для создания инструмента, который может анализировать .elf из компиляции и следовать за дампом стека, чтобы создать такой отчет?
У вас есть необработанный файл ELF с информацией отладки для сборки? В противном случае маловероятно, что вы получите гораздо больше, чем имя функции из него (если у вас есть символы на нем.) –
Да, я знаю, и у меня есть контроль над процессом сборки, поэтому я могу добавить все, что нужно, чтобы сделать это возможно. То есть решение может включать дополнительные этапы сборки, а также сбор данных. –