我正在尝试运行 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
您需要在直接调用二进制文件之前设置环境变量。如果您想在基于 Debian 的发行版中通过 sudo 执行此操作,您可以使用:
在 bash 中运行命令
source /etc/apache2/envvars
为我加载了必要的变量。对于第一个 Ubuntu 运行符号服务器: https ://lists.ubuntu.com/archives/ubuntu-devel-announce/2006-September/000195.html
对于第二个看起来像 apache 配置问题的问题,apache 在由 init 脚本启动时是否运行正常?
apache2.conf 中有一些使用环境变量的设置。在 apache2 启动之前使用“./etc/apache2/envvars”