убить -3 для C ++ приложения на солярисе - PullRequest
0 голосов
/ 25 мая 2011

У меня есть приложение, написанное на C ++ и работающее на Solaris. Приложение делает много вещей и посылает сердцебиение сторожевому приложению, говоря «Я жив». Если что-то идет не так, приложение ничего не делает (также не посылает пульс). В приложении Java kill -3 помогает мне увидеть, что происходит. Должен ли я реализовать аналогичную функцию ВРУЧНУЮ, используя сигналы для собственного (не Java) приложения? Или есть какой-нибудь альтернативный способ узнать, что происходит внутри моего приложения (состояние потока и т. Д.).

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Как Solaris, так и Linux поддерживают команду gcore для создания дампа ядра запущенного процесса.Затем вы можете использовать gdb (или dbx) для анализа файла ядра.

0 голосов
/ 25 мая 2011

Самый гибкий способ узнать, что происходит в вашем собственном приложении, - это подключить отладчик, а затем проверить все, что вас интересует, вручную.

Если вы закроете приложение с помощью kill -3, оно сгенерирует дамп ядра, который впоследствии можно будет проверить вручную с помощью отладчика аналогичным образом.

Если вы хотите, чтобы конкретная информация регистрировалась / ... в ответ на сигнал, отправленный kill -3, вы должны реализовать это самостоятельно.

...