Я заинтересован в добавлении аварийного репортера в нашу программу. Сложность состоит в том, что в типичном случае наша программа распространяется как исходный код, который пользователь затем сам компилирует.
Типичные системы отчетов о сбоях, такие как дампы ядра и Google Breakpad, предполагают, что разработчики имеют доступ к двоичным файлам, идентичным тем, которые генерировали отчет о сбоях. (Например, мини-дампы Breakpad не имеют никакой символьной информации и основаны на таблице символов, которая была сгенерирована на стороне разработчиков.) Это не обязательно будет так, если пользователь скомпилировал программное обеспечение самостоятельно машина. (Из-за разных вариантов ОС, разных компиляторов и т. Д.)
Существует ли надежная кроссплатформенная система отчетов о сбоях, которая не зависит от наличия у разработчика бинарно-идентичной версии программы? (Кроссплатформенность для нас в основном Unix-подобная (Linux и MacOS), хотя кое-что, что будет работать для Windows, также будет оценено.)
Я смотрел в составлении для этого случая репортер с backtrace / backtrace_symbols / __cxa_demangle, но это в лучшем случае дает только дерево вызовов. Мне интересно, возможно ли также получить информацию о содержимом локальных переменных — особенно о значении параметров, передаваемых в функции.
Задача ещё не решена.
Других решений пока нет …