Я развернул приложение fastcgi на моем сервере. Когда я пытаюсь запустить его на сервере, происходит сбой (подробнее об этом позже).
Сначала некоторые факты о локальной (dev) машине:
- Приложение C / C ++
- Я разработал приложение на Ubuntu 10.0.4 LTS (та же ОС на сервере)
- Во время разработки я использовал gdb для пошагового выполнения кода для исправления начальных ошибок
- Я запускаю ldd в приложении, и все необходимые общие библиотеки найдены
- Я могу проверить его на своем локальном компьютере, используя curl http://path/to/cgiapp
После тестирования кода и работы на локальном компьютере я собрал выпускную версию и упаковал ее, используя IDE Netbeans 6.9
Я установил пакет на сервер и запустил следующие тесты
При первом запуске ldd на установленном приложении я заметил, что некоторые файлы не найдены. Я исправил это, скопировав файлы на компьютере разработчика в место, где их искал приложение (возможно, не идеальное) - НО, когда я снова запускаю ldd, все библиотеки были найдены
Затем я протестировал приложение, запустив curl http://path/to/cgiapp на консоли
Вместо ожидаемого сообщения на консоль выглядело то, что выглядело как дамп ядра (т.е. дамп двоичного потока).
Мои вопросы:
- Может кто-нибудь объяснить, почему ldd правильно указывает все файлы (загружены?) - и все же приложение вылетает
- Что может быть наиболее вероятной причиной того, что приложение работает на моем компьютере разработчика, но не запускается на сервере?
- Так как приложение вылетает перед запуском, я не уверен, как использовать gdb для отладки приложения - очевидно, я скопирую отладочную версию на сервер, прежде чем попытаться отладить.
Есть дальнейшие осложнения в отношении пункта 3 выше. Сервер является скудным и подлым, безголовым сервером, поэтому на нем не установлен gdb.
Поэтому, даже если я нашел способ отладки приложения (до его сбоя), я не знаю, как подключиться к удаленному процессу.
Любые идеи о том, как начать разбираться в этом, будут высоко оценены.