c++ - lighttpd:启用 cgi 二进制文件的核心转储

标签 c++ ubuntu cgi fastcgi lighttpd

我一直在 ubuntu 上使用带有 cgi 的 lighttpd。我遇到了一个“500 - 内部服务器错误”案例,我想对其进行调试。

当我的二进制文件崩溃时,有没有办法让 lighttpd/cgi 转储核心? 我遇到了this page ,它有一个用于启用核心转储的字段,但在 lighthtpd.conf 中包含 server.core-files="enable" 似乎不起作用。

有什么想法吗?

谢谢。

附言 下面是我用来生成core的测试程序:

int main()
{
    char* html = "<html>\n"\
                 "<header>" \
                 "<title>This is title</title></header>\n" \
                 "<body>\n"\
                 "Hello world\n"\
                 "</body>\n"\
                 "</html>";
    html[1] = 'r';
    std::cout<<html;
    return 0;
}

我通过执行“ulimit -c unlimited”将限制设置为无限制。当我从命令行运行二进制文件时,我可以在当前目录中看到一个核心。但是从浏览器调用时,cgi-bin 中没有核心。 Cgi 日志有以下条目:

2018-07-29 17:20:41: (server.c.1558) server stopped by UID = 0 PID = 1

2018-07-29 17:21:18: (log.c.164) server started

2018-07-29 21:29:16: (mod_cgi.c.601) cgi died, pid: 28197

2018-07-29 21:29:17: (mod_cgi.c.601) cgi died, pid: 28202

最佳答案

您不需要要求 lighttpd 在崩溃时生成核心转储。你需要问内核。使用 sysctl -a | 检查grep kernel.core_pattern 如何/在何处/是否将核心文件写入您的系统并根据需要进行更改。

关于c++ - lighttpd:启用 cgi 二进制文件的核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580197/

相关文章:

c++ - 抑制特定模板代码的编译器警告

c++ - OpenGL 旋转

javascript - AJAX:通过包含 '&' 字符的 CGI 传递字符串

带有 HTTP 状态代码的 Perl CGI

c++ - 防止模板偏特化错误

c++ - 与 lambda 成对 vector 的 lower_bound

macos - rsub with sublime 和 ssh 连接被拒绝

regex - sed string 如果部分字符串匹配,则替换整个单词,但不影响字符串后面的单词

ubuntu - 如何获取 DEB 文件的 MD5Sum

linux - Damn Small Linux 上的 CGI Perl 脚本和 Monkey Web 服务器