免费注册 查看新帖 |

Chinaunix

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

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

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

恩,我相信这种可能性是最大的。


   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
32 [报告]
发表于 2013-03-25 16:20 |只看该作者
极对!
毕竟是每天都是有KW个程序在使用的东西。
如果是有问题,估计也是我使用没对。
只是突然间指针指改变了,让我很奇怪而已。
谢谢

回复 30# lrita


   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-09-23 06:20:00
33 [报告]
发表于 2013-03-25 16:47 |只看该作者
我看了下你的代码逻辑,设计多个thread并发访问多个链表,你的步骤3需要lock. 可能是链表被破坏了,
一个检查原则是保证任何修改(add, remove, modify)链表的操作都要lock

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
34 [报告]
发表于 2013-03-25 17:44 |只看该作者
irp 发表于 2013-03-25 16:47
我看了下你的代码逻辑,设计多个thread并发访问多个链表,你的步骤3需要lock. 可能是链表被破坏了,
一个检 ...


目前步骤3只是生产一个NODE(需要malloc/free),
然后是在步骤4中,才会把NODE添加到LIST中。
这种情况下,应该不用LOCK吧?

但是我会认真检查这个流程,看有没有错。


多次试验以后,发现起码有3个调用malloc的地方,
malloc返回的地址是不对了,比如:
p = malloc();
p 打印出来,结果都是 0x7faaaaaaaaaa (共12位的地址)
然后把这个p的值返回到上一级函数,打印出来 就是 0xfffffffffaaaaaaaa (16位)
然后往这个地址上拷贝数据,当然就挂了。


所以,非常可能是遇到兄弟之前遇到的情况,在这个 malloc之前,
堆栈的链表之类的就被破坏了。


目前正往这个方向DEBUG
谢谢了~

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

兄弟,你是对的!
只是我之前没有这样的概念,无法理解你的真正意思!


   

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

问题已经解决,欢迎拍砖~


   

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
37 [报告]
发表于 2013-03-26 05:51 |只看该作者
回复 16# cgcym1234
问题已经解决,欢迎拍砖~


   

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

问题已经解决,欢迎拍砖~


   

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
39 [报告]
发表于 2013-03-26 08:26 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
40 [报告]
发表于 2013-03-26 09:45 |只看该作者
学习了,谢谢楼主的分享。

原因是在64bit的系统上,隐式返回的指针默认是32bit的
=>后面一句的描述是否有问题。
如果一个函数在被定义或声明之前被调用,那么它的返回类型就默认为整形。(摘自《c陷阱与缺陷》第4章连接部分,p80)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP