LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: haohao_h

请教一个关于在嵌入式平台上的boa webserver的问题

[复制链接]
发表于 2005-10-14 08:56:32 | 显示全部楼层
看了一下新的boa,是0.94的,偶以前的那个boa是0.93的。
回复 支持 反对

使用道具 举报

发表于 2005-10-17 10:52:16 | 显示全部楼层
请知道原因的朋友帮帮忙啊,哪位大虾对boa源码熟悉的,请指点一下小弟阿!万分感谢阿
回复 支持 反对

使用道具 举报

发表于 2005-10-18 17:22:13 | 显示全部楼层
自己顶啊 救命
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-19 11:40:43 | 显示全部楼层
0.93是有问题的。以前我改了半天也没改好,后来更新开发包之后就没有这个问题了。新开发包里用的是boa-new目录下的boa。版本是0.94.13。
回复 支持 反对

使用道具 举报

发表于 2005-10-20 14:14:03 | 显示全部楼层
谢谢楼主不厌其烦指点小生阿!
偶按楼主的方法将boa-new替换掉以前uClinux下的boa,用的是以前bfin编译器(gcc3.3.3的)。编译成功后替换掉以前开发板上的boa。浏览网页没有问题,在ie中点击提交cgi,可以运行一次打印的信息如下
error 11[Resource temporarily unavailable]
Ananth : Fork is Success - Child
Ananth : Inside Sockets - Child
Ananth : Closing the access log - Child
Ananth : Closed the access log - Child
Ananth : Parent
Ananth After verbose_cgi_logs: Parent
Ananth Inside close check: Parent
Ananth After close check: Parent
但是回到主页面再提交一次又不行了,串口上打印出
s - Child
Ananth : Inside Sockets - Child
Ananth : Closing the access log - Child
Ananth : Closed the access log - Child

sh 38: Child 51 died
boa死掉。重启boa,还是上述症状。

偶又解uClinux-dist-2005R3.tar.bz2,用上述编译器编译后得到的boa下到开发板上,结果根本不能运行阿。
楼主救命,已经冒办法了阿
能不能将您的boa源码以及编译器提供给小弟,救小弟于水火中,万分叩谢阿!
回复 支持 反对

使用道具 举报

发表于 2005-10-20 15:50:20 | 显示全部楼层
在线等各位大佬!!!!
回复 支持 反对

使用道具 举报

发表于 2005-10-20 22:11:14 | 显示全部楼层
贴出CGI程序看看。
回复 支持 反对

使用道具 举报

发表于 2005-10-21 08:46:23 | 显示全部楼层
cgi程序很简单的,就是几条打印而已:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()

{
    char *s = "Hello CGI,this is a test!";
    printf("Content-type:text/html");
    printf(" \n\n");
    printf("<HTML><HEAD>");
    printf("<TITLE>CGI Test!!!</TITLE>");
    printf("</HEAD><BODY>");
    printf("<BR>");
    printf("<>Hello CGI!\n");
    printf("<>%s\n",s);
    printf("</BODY><HTML>");
    return 0;

}
编译后可以直接在板子上运行,串口上显示出来。
回复 支持 反对

使用道具 举报

发表于 2005-10-21 08:48:04 | 显示全部楼层
在线等!等!等!
回复 支持 反对

使用道具 举报

发表于 2005-10-21 14:21:00 | 显示全部楼层
我的也和allaying同样的问题,最近比较好的一次,是加了很多调试信息后,连续5、6次出现点击“提交”按钮后能够执行cgi,并在网页上打印出信息;但是串口上回打印出如下信息:
munmap of non-mmaped memory by process 78 (boa): 006fe000
munmap of non-mmaped memory by process 78 (boa): 001edaa0
munmap of non-mmaped memory by process 78 (boa): 00749000
munmap of non-mmaped memory by process 78 (boa): 001ed1a0
munmap of non-mmaped memory by process 78 (boa): 00741000
munmap of non-mmaped memory by process 78 (boa): 001ed5e0
munmap of non-mmaped memory by process 78 (boa): 00748000
munmap of non-mmaped memory by process 78 (boa): 001edaa0
munmap of non-mmaped memory by process 78 (boa): 006c7000
munmap of non-mmaped memory by process 78 (boa): 001ed1a0
munmap of non-mmaped memory by process 78 (boa): 006d7000
munmap of non-mmaped memory by process 78 (boa): 001ed5e0

而且,过一会boa就死掉了,再也很少能这样连续的不出错了。一般情况都是大部分情况下出错,偶尔有几次能够正确调用cgi,并在网页上打印出测试信息。我跟踪了boa源码包中的cgi.c中的init_cgi()函数,不管出错还是偶尔正常,点击“提交”按钮后都会执行到这个函数,并且在建立的子进程中进行输入输出重定向后,通过执行execve(req->pathname, aargv, req->cgi_env)能够始终进入cgi_test执行,但是之后就挂了!!!!!!!!!并且该函数中子进程代码段下面的父进程不知道为什么总是不能执行(其中添加的fprintf调试信息不出现)?有过经验的指点一下,万分感谢!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表