免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5893 | 回复: 3
打印 上一主题 下一主题

哪里能找到pthread_create()的源码? [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-06-18 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-22 09:44 |只看该作者 |倒序浏览
我在进行压力测试时碰到一个奇怪的问题:调用pthread_create()时core dump了。

程序的流程是:主线程起一个SOCKET进行监听,有用户连接时创建一个子线程进行处理。子线程处理完后退出。

现在进行压力测试,400用户并发,隔20秒左右连一次,跑了几个小时后coredump:
#0  0xff3a0888  in  memset() from /usr/platform/SUNW, Netra-240 libc_psr.so.1
#1  0xfef455c4  in  setup_context()  
#2  0xfef38854  in  _thrp_create()
#3  0xfef3c07c  in pthread_create()
#4  0x0022a370 in rtspConvStartListenThread()

此问题可以重现,请大家指教。

pthread_create语句如下:
pthread_create(&usrThread, &attr, rtspConvStartRecv, (void *)(rtspConvArg));

void *rtspConvStartRecv(void *arg);

从GDB来看是在memset时出问题的,可能是跟创建线程时的stack有关,
不知可不可以找到pthread_create的源码?这样可以看看setup_context()是想做什么。

[ 本帖最后由 crazy_li 于 2006-8-24 11:41 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2006-08-22 09:50 |只看该作者
估计是因为传递给 thread_func 的参数超出生存期,因此内存越界了。

BTW:你不告诉大家 pthread_create 那句是怎么写的,看来是不希望得到任何帮助喽~

论坛徽章:
0
3 [报告]
发表于 2006-08-22 10:35 |只看该作者
恩, 我调用sem_open的时候也会产生core dump,不知道是什么原因,不过我是在虚拟机上写的代码

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-06-18 06:20:00
4 [报告]
发表于 2006-08-24 11:43 |只看该作者

回复 2楼 flw 的帖子

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP