Linux C и C ++: что еще я должен регистрировать при обработке таких сигналов, как SIGSEGV? - PullRequest
2 голосов
/ 27 октября 2010

Работа на некоторых системах Linux (Ubuntu), запуск некоторых собственных приложений C и C ++ (gcc).

Существует длинный список обрабатываемых сигналов, например SIGSEGV и SIGINT. По сигналу стек вызовов получается с использованием backtrace(3) и backgrace_symbols(3). Для C ++ имена функций даже разделены на abi::__cxa_demangle().

Мой вопрос: когда появляются эти сигналы, какой еще API C / C ++ существует, который дал бы нам более полезную информацию для регистрации после отладки? Или обратная трассировка - единственная «сексуальная» вещь, которую нужно сделать?

1 Ответ

1 голос
/ 27 октября 2010

Возможно, вы захотите включить дамп ядра ... ulimit -c unlimited или аналогичный. Затем вы можете загрузить файл ядра в GDB и посмотреть, что случилось с программой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...