Я пытаюсь запустить gdb для отладки моей установки Ubuntu 9.10 Apache2 и имею несколько проблем:
Похоже, что пакет, установленный Ubuntu для Apache2, не включает символы отладки; есть ли другая версия пакета, которую я должен использовать для разработки / отладки?
Когда я пытаюсь запустить gdb, я получаю сообщение об ошибке, которое, похоже, вызвано отсутствующей переменной окружения. Есть ли дополнительные параметры, которые я должен передать для "запуска", чтобы заставить это работать?
Вот результат сеанса отладчика:
root@aj-ubuntu:/usr/sbin# gdb apache2
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/apache2...(no debugging symbols found)...done.
(gdb) run -X
Starting program: /usr/sbin/apache2 -X
[Thread debugging using libthread_db enabled]
apache2: bad user name ${APACHE_RUN_USER}
Program exited with code 01.
(gdb)
Заранее спасибо, -aj
Перед непосредственным вызовом двоичного файла необходимо установить переменные среды. Если вы хотите сделать это из sudo в дистрибутиве на основе Debian, вы можете использовать:
source /etc/apache2/envvars
sudo -E gdb /usr/sbin/apache2
Запуск команды source /etc/apache2/envvars
в bash загрузил мне нужные переменные.
Для первого Ubuntu запустите сервер символов: https://lists.ubuntu.com/archives/ubuntu-devel-announce/2006-September/000195.html
Во втором случае, который выглядит как проблема конфигурации apache, запускается ли apache самостоятельно при запуске сценарием инициализации?
В apache2.conf есть некоторые настройки, использующие переменные среды. используйте ". / etc / apache2 / envvars" перед запуском apache2