2015-05-23 4 views
0

Есть инструменты, позволяющие запускать консольную команду или консольное приложение в качестве демона. Чтобы «демонировать» его, так сказать.Запуск демона как обычного приложения (отладка в KDevelop)

Есть ли способ запустить демон в качестве обычного консольного приложения?

Я кодирую в KDevelop и не вижу никаких параметров для отладки daemon.

Спасибо!

ответ

1

Достаточно нормально добавить специальный режим отладки для демонов, чтобы включить это. То есть, добавьте параметр командной строки для отключения шага демонстрации, если программа запущена на переднем плане. Тогда просто запустить демона под gdb.

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

Для отладки работающего демона вы можете использовать команду gdb attach. Однако это не очень хорошо подходит для отладки запуска демона, так как вам придется участвовать в гонке, чтобы приложить время.

Ядро linux не поддерживает никакого «предварительного прикрепления» к следующему экземпляру программы, но я написал взломать его с помощью SystemTap, чтобы найти here.

+0

Спасибо за объяснение! Ты отличный программист! Кстати, я пытаюсь сделать приложение сервера REST API сейчас. Просто чтобы лучше познакомиться с C++. Мне также удалось отключить демонанизацию, и теперь очень удобно отлаживать его в KDevelop с помощью gdb. Просто прокомментировал следующую строку https://github.com/Begun/serverlib/blob/master/examples/example.cpp#L154 –