首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache2模块中的故障分割

Apache2模块中的故障分割
EN

Stack Overflow用户
提问于 2012-01-12 22:29:47
回答 1查看 1.4K关注 0票数 0

我目前正在阅读“”一书,以学习如何编写Apache2模块。我尝试了一些例子,从这本书,在一个情况下,我得到了一个分段错误,即使我完全复制和粘贴源文件从作者的网站。

该示例是一个输出过滤器,用于处理*.txt文件的请求,在请求的txt文件之间添加一个html页眉和页脚,其中包含html转义的内容。

源代码可在:http://apache.webthing.com/mod_txt/下使用。

apache日志文件中的错误如下:

清华1月12日20:38:01 2012儿童pid 3500退出信号分割故障(11)

我使用以下命令安装了该模块:

代码语言:javascript
复制
apxs2 -c mod_txt.c 
sudo apxs2 -i mod_txt.la 
sudo service apache2 restart

使用apxs2时没有编译错误。

我在httpd.conf文件中添加了如下过滤器:

代码语言:javascript
复制
LoadModule txt_module /usr/lib/apache2/modules/mod_txt.so
AddOutputFilter text-filter .txt
AddType text/html .txt
TextHeader /home/robert/header.txt
TextFooter /home/robert/footer.txt

代码有什么问题吗?还是我在编写/安装/配置过滤器时做错了什么?

我的系统:UbuntuLucidLynx10.04.3,从默认的Ubuntu存储库安装了Apache2.2.14。

我真的很感激你对此的任何暗示!

提前感谢!

向你问好,罗伯特

编辑一些附加信息:

我使用gdb获得了更多关于分段故障发生的信息。有什么办法能得到确切的电话号码吗?

这是输出:

代码语言:javascript
复制
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xab472b70 (LWP 4041)]
0xb7d3fb9b in txt_filter () from /usr/lib/apache2/modules/mod_txt.so
(gdb) bt
#0  0xb7d3fb9b in txt_filter () from /usr/lib/apache2/modules/mod_txt.so
#1  0x00154150 in ap_pass_brigade (next=0x2e3198, bb=0xb7f4fff4)
    at /build/buildd/apache2-2.2.14/server/util_filter.c:526
#2  0x00141147 in default_handler (r=0x2e4ea8)
    at /build/buildd/apache2-2.2.14/server/core.c:3757
#3  0x00148321 in ap_run_handler (r=0x2e4ea8)
    at /build/buildd/apache2-2.2.14/server/config.c:159
#4  0x0014c107 in ap_invoke_handler (r=0x2e4ea8)
    at /build/buildd/apache2-2.2.14/server/config.c:373
#5  0x0015b6b8 in ap_process_request (r=0x2e4ea8)
    at /build/buildd/apache2-2.2.14/modules/http/http_request.c:282
#6  0x001581e8 in ap_process_http_connection (c=0x2defd0)
    at /build/buildd/apache2-2.2.14/modules/http/http_core.c:190
#7  0x00150b91 in ap_run_process_connection (c=0x2defd0)
    at /build/buildd/apache2-2.2.14/server/connection.c:43
#8  0x0016249b in process_socket (thd=0x2a7958, dummy=0x2dda00)
    at /build/buildd/apache2-2.2.14/server/mpm/worker/worker.c:544
#9  worker_thread (thd=0x2a7958, dummy=0x2dda00)
    at /build/buildd/apache2-2.2.14/server/mpm/worker/worker.c:894
#10 0xb7f781e1 in ?? () from /usr/lib/libapr-1.so.0
#11 0xb7f3f96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#12 0xb7eada4e in clone () from /lib/tls/i686/cmov/libc.so.6
EN

回答 1

Stack Overflow用户

发布于 2012-05-10 10:25:55

关于apache模块的更专门的调试教程可以在您正在阅读的书中找到(第12章)。

目前,我正在Ubuntu上运行相同的硬件/软件配置(Apache2.2.14),并成功地编译/运行该模块。

在/var/www/ i文件夹中,我放置了一个HTML文档,但只将它的扩展名更改为.txt,并通过我的浏览器(localhost/some html.txt)访问它,并成功地表示了输出(取决于您在页眉和页脚文件中放置的标记)(因为我在页眉和页脚文件中分别使用了<pre></pre>标记)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8843300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档