MyException - 我的异常网
当前位置:我的异常网» C++ » unix多线程有关问题

unix多线程有关问题

www.MyException.Cn  网友分享于:2013-02-10  浏览:27次
unix多线程问题
今天将一个多线程程序由linux移植到AIX Unix遇到问题,Linux下运行程序正常,但unix下却coredump了,用dbx分析,发现其中有个函数,定义了结构体变量,其空间为129080,如果将该结构体空间改成100,程序能通过。问题:AIX中多线程是不是有什么限制,如栈空间?为啥Linux就可以?

附上:
Segmentation fault in fc_pkg2 at 0x1000207c ($t2)
0x1000207c (fc_pkg2+0x24) 7c21616e stwux r1,r1,r12
  
(dbx) where
fc_pkg2() at 0x1000207c
test_pthread(data = (nil)), line 29 in "cdb_main.c"
(dbx) x
  $r0:0x100038a4 $stkp:0x30006230 $toc:0x300008e0 $r3:0x30006280  
  $r4:0x30047458 $r5:0x30047408 $r6:0x00000000 $r7:0x30000658  
  $r8:0x1028c16b $r9:0x1028c16b $r10:0x00000000 $r11:0x00000000  
 $r12:0xfffe0550 $r13:0x00000000 $r14:0x00000000 $r15:0x00000000  
 $r16:0x00000000 $r17:0x00000000 $r18:0x00000000 $r19:0x00000000  
 $r20:0x00000000 $r21:0x00000000 $r22:0x00000000 $r23:0x00000000  
 $r24:0x00000000 $r25:0x00000010 $r26:0x30047408 $r27:0x100074c4  
 $r28:0x10007028 $r29:0x00000000 $r30:0x300062b8 $r31:0x30006280  
 $iar:0x1000207c $msr:0x0000d032 $cr:0x42000224 $link:0x100038a4  
 $ctr:0xd0132880 $xer:0x20000017 $mq:0x00000000  
  Condition status = 0:g 1:e 5:e 6:e 7:g 
  [unset $noflregs to view floating point registers]
  [unset $novregs to view vector registers]
in fc_pkg2 at 0x1000207c ($t2)
0x1000207c (fc_pkg2+0x24) 7c21616e stwux r1,r1,r12

------解决方案--------------------
好像缺省栈空间是8k呢?

AIX线程支持可调参数(
http://ebsblog.blog.163.com/blog/static/127949789200981533034710/
)

AIXTHREAD_STK=n(带有 4330-09 推荐维护包的 AIX 及更高版本) 
用途: 十进制字节应该分配到每个 pthread。此值可由 pthread_attr_setstacksize 例程覆盖。 
值: 缺省值:对于 32 位应用程序为 98 304 字节,对于 64 位应用程序为 196 608 字节。范围:0 到 268 435 455 的十进制整数值,并且该值将向上取整到最接近的页(目前为 4 096)。 
显示: echo $AIXTHREAD_STK
此参数内部开启,因此初始缺省值无法通过 echo 命令看到。
 
更改: AIXTHREAD_STK=sizeexport AIXTHREAD_STK 
更改会在该 shell 中立即生效。在从这个 shell 注销之前更改一直有效。将 AIXTHREAD_STK=size 命令添加到 /etc/environment 文件中可进行永久性更改。
 
诊断: 如果失败程序的分析结果是由于堆栈溢出,缺省的栈大小应该增加。 
调整: 如果尝试达到 32 位应用程序上的 32 000 线程限制,那么有必要减小缺省堆栈大小。 

文章评论

写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
我的丈夫是个程序员
我的丈夫是个程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
为什么程序员都是夜猫子
为什么程序员都是夜猫子
每天工作4小时的程序员
每天工作4小时的程序员
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
Java程序员必看电影
Java程序员必看电影
漫画:程序员的工作
漫画:程序员的工作
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员都该阅读的书
程序员都该阅读的书
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
旅行,写作,编程
旅行,写作,编程
代码女神横空出世
代码女神横空出世
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
我是如何打败拖延症的
我是如何打败拖延症的
那些争议最大的编程观点
那些争议最大的编程观点
中美印日四国程序员比较
中美印日四国程序员比较
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员的鄙视链
程序员的鄙视链
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员和编码员之间的区别
程序员和编码员之间的区别
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
 程序员的样子
程序员的样子
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
鲜为人知的编程真相
鲜为人知的编程真相
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
一个程序员的时间管理
一个程序员的时间管理
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有