Пытаюсь сделать core dump многотредовой программы в определенной точке и дальше использовать его как снэпшот состояния для отладки. Делается это для ускорения отладки, т.к. программа идет до места падения очень долго, а reverse debug использовать не могу — gdb не поддерживает обратную отладку для многотредовых приложений.
Для создания дампа использую gcore. Насколько я понял, версии gcore для Linux и BSD отличаются — BSDшная версия умеет останавливать программу до снятия дампа. Поэтому усыпляю программу вручную — из кода вызываю kill(SIGSTOP,getpid()), дальше снаружи вызываю gcore на выданный pid.
Полученный дамп отдаю gdb (7.2) через --core. Он определяет исходную программу, восстанавливает треды, но в бэктрэйсе показывает муть и не подхватывает отладочную информацию. Подключение исходного бинаря через symbol-file ничего не меняет. При попытке запустить исполнение с места сохранения выдает No executable file specified.
Раньше с core dump'ами не работал. Need help.


Ответ на:
комментарий
от i-rinat
Ответ на:
комментарий
от i-rinat
Ответ на:
комментарий
от j-a-t-a
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.