免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: robin10
打印 上一主题 下一主题

[C] 64bit OS 调用 隐式声明函数 的 返回值导致程序崩溃 [已解决] [复制链接]

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
21 [报告]
发表于 2013-03-25 13:18 |只看该作者
回复 14# irp

1.指针pMsg_node 是函数内部定义的局部变量,没有初始化。pMsg_node 只接收 malloc 返回的值。
2.我把malloc返回的指针值打印出来了,和在malloc 函数的值一致。
3.pMsg_node 再次传到下一个函数,打印出来,前面就多了 0xfffffff..

不太清楚这个过程,发生了一些什么。。。如果是被改变了。。应该怎么样下手找出来是谁改变了这个值呢?


   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
22 [报告]
发表于 2013-03-25 13:30 |只看该作者
有人建议用GDB调试。
坦言,自己没有试过 GDB调试多线程。

之前调试的也是只用了很简单的功能。
刚才试了一下,未果。

以前听说GDB对多线程效果不大(?)
不清楚哪位在这方面有经验的?效果如何

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
23 [报告]
发表于 2013-03-25 13:38 |只看该作者
本帖最后由 robin10 于 2013-03-26 05:56 编辑

回复 13# w_anthony

http://www.cnblogs.com/tomren/archive/2011/12/24/2300602.html
malloc是否是线程安全的?

看了上述的一个测试。
目前还没有验证。
如果是,那么可能可以解析为什么会挂。

程序使用了几个库,库里面有malloc/free,
编译这些库的时候,虽然加了-pthread
但是,这些库里面,并没有调用任何 libpthread.so 的API。

不清楚回复,这些库使用的malloc 就不是线程安全的了。
这个稍后会验证。

   

今天验证了从库中调用 malloc/free,
而这个库的编译并没有添加 -lpthread
库内也没有调用任何 libthread.so中的函数。

但是超过了20次的测试,并没有发现malloc不安全。。。仅供参考。。

论坛徽章:
1
白羊座
日期:2013-08-20 17:40:23
24 [报告]
发表于 2013-03-25 13:45 |只看该作者
回复 20# robin10
我当时把malloc的地方用临时变量替换掉测试,发现没问题了,
然后再详细检查,写这块内存的地方,加了点限制,改回用
malloc,没问题了。
不知道对你适不适用。


   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
25 [报告]
发表于 2013-03-25 14:00 |只看该作者
回复 24# cgcym1234


写这块内存的地方,加了点限制

请问加了什么限制?
刚才又测试了一下
很可能和你遇到的情况类似!

   

论坛徽章:
1
白羊座
日期:2013-08-20 17:40:23
26 [报告]
发表于 2013-03-25 14:06 |只看该作者
回复 25# robin10
这个限制就要看你具体做了哪些写内存的操作了啊,
保证内存不越界就行,
限制个数,限制大小,一般就这些了吧。



   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
27 [报告]
发表于 2013-03-25 15:10 |只看该作者
回复 26# cgcym1234

这些都是已经有限制了的。
1.内存是足够的,而且有时候刚启动,就已经挂了,不可能耗尽了堆栈。
2.malloc size都是有检查的。

但是,我会重新检查一下代码
看有没有忽略的地方!
谢谢!

   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
28 [报告]
发表于 2013-03-25 15:14 |只看该作者
如果排除了多线程调用函数库,库中有malloc/free, 导致的malloc 出现问题  这种可能的话,
我相信是自己代码或者逻辑出了问题。

论坛徽章:
1
白羊座
日期:2013-08-20 17:40:23
29 [报告]
发表于 2013-03-25 15:58 |只看该作者
回复 28# robin10
malloc,free是线程安全的,
当你越界破坏了malloc的链式结构时,
可能会core在任何出现free的地方(比如使用的其他库中),




   

论坛徽章:
0
30 [报告]
发表于 2013-03-25 16:02 |只看该作者
不要轻易怀疑库函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP