Запуск gdb в Ubuntu 9.10 Установка Apache2

Я пытаюсь запустить gdb для отладки установки Ubuntu 9.10 Apache2, и у меня возникла пара проблем:

  1. Похоже, что пакет, установленный Ubuntu для Apache2, не содержит символов отладки; Есть ли другая версия пакета, который я должен использовать для разработки / отладки?

  2. Когда я пытаюсь запустить 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

4 ответа

Решение

Для первого Ubuntu запустите сервер символов: https://lists.ubuntu.com/archives/ubuntu-devel-announce/2006-September/000195.html

Для второго, который выглядит как проблема конфигурации Apache, Apache работает нормально при запуске сценарием инициализации?

Вам необходимо установить переменные среды перед непосредственным вызовом двоичного файла. Если вы хотите сделать это из sudo в дистрибутиве на основе Debian, вы можете использовать:

source /etc/apache2/envvars
sudo -E gdb /usr/sbin/apache2

Выполнение команды source /etc/apache2/envvars В bash загружены необходимые для меня переменные.

В apache2.conf есть некоторые настройки, которые используют переменные окружения. используйте ". /etc/apache2/envvars" перед запуском apache2

Другие вопросы по тегам