【问题标题】:how to debug apache? where do I find the core dump如何调试阿帕奇?我在哪里可以找到核心转储
【发布时间】:2013-01-16 16:03:14
【问题描述】:

我正在编写一些作为 Apache 的一部分运行的 CPP 代码。 我有一个段错误。我在哪里可以找到核心转储,以便我可以调试它。 如果没有核心转储,我如何告诉 Apache 创建一个(是否有调试标志?)

【问题讨论】:

  • 我希望您使用 -X 进行 apache 调试会话。当您在调试器中直接启动进程时,它使调试 apache 变得更加容易,而不是仅仅依赖于记录的输出、核心文件或寻找正在运行的进程以附加到(这对于启动错误来说是一个真正的负担)。我不知道该功能是否仅适用于 Windows,但如果您可以使用它,它就是救命稻草。

标签: c++ apache debugging coredump


【解决方案1】:

通过ulimit -c 设置是否转储核心。是否转储内核不是由应用程序决定的(内核是由操作系统生成的,而不是应用程序,它已经在那个时候消失了)。

核心文件应位于启动应用程序的目录中。

无论应用程序是否为调试版本,都可以/将转储内核。 (当然,由于进程映像中缺少调试符号,非调试版本的核心转储不太有用。)

【讨论】:

  • 所以,如果我执行 /usr/local/apache2/bin/apachectl start。我应该期望在 /usr/local/apache2/bin 中看到核心转储?
  • 位置其实是可配置的,见:stackoverflow.com/questions/2065912/…
  • 核心转储到工作目录。默认情况下,这是您拨打/usr/local/apache2/bin/apachectl 时所在的那个。该进程可以cwd 离开那里,如果是Apache,将尝试这样做以将核心转储到Apache 配置中指定为CoreDumpDirectory 的目录中。是否成功取决于您的系统/配置,当然......
猜你喜欢
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
相关资源
最近更新 更多