社区
Linux/Unix社区
帖子详情
UNIX线程共用一个变量,出现core dump
zshtiger2414
2009-11-19 05:26:58
在UNIX系统下,创建多线程,做了两个测试程序。
这两个测试程序中都用到线程访问全局变量,但是有一个程序core dump了,一个程序没有core dump,这是为什么啊?
请问哪个达人能帮忙啊?
...全文
126
9
打赏
收藏
UNIX线程共用一个变量,出现core dump
在UNIX系统下,创建多线程,做了两个测试程序。 这两个测试程序中都用到线程访问全局变量,但是有一个程序core dump了,一个程序没有core dump,这是为什么啊? 请问哪个达人能帮忙啊?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Caballeroo
2009-11-23
打赏
举报
回复
[Quote=引用 8 楼 zshtiger2414 的回复:]
引用 6 楼 caballeroo 的回复:
core dump 是代码segmentation fault时记录内存中数据的文件。
一般需要使用ulimit -c size,才会在代码异常时产生一个core文件。
你的代码应该有内存的非法写入等操作!
正象你说的那样子在程序中几个现成对对stderr进行了写入操作的时候出现了core dump!
这样的错误应该怎么样去避免啊?
[/Quote]
这种错误要是避免的话,完全靠平时写代码的注意点了!
zshtiger2414
2009-11-23
打赏
举报
回复
[Quote=引用 6 楼 caballeroo 的回复:]
core dump 是代码segmentation fault时记录内存中数据的文件。
一般需要使用ulimit -c size,才会在代码异常时产生一个core文件。
你的代码应该有内存的非法写入等操作!
[/Quote]
正象你说的那样子在程序中几个现成对对stderr进行了写入操作的时候出现了core dump!
这样的错误应该怎么样去避免啊?
一 铭
2009-11-21
打赏
举报
回复
这怎么说的准哦, 代码贴上来才知道
morris88
2009-11-21
打赏
举报
回复
把代码贴上来瞧瞧...
Caballeroo
2009-11-21
打赏
举报
回复
core dump 是代码segmentation fault时记录内存中数据的文件。
一般需要使用ulimit -c size,才会在代码异常时产生一个core文件。
你的代码应该有内存的非法写入等操作!
wuyu637
2009-11-19
打赏
举报
回复
如果两个线程都同时往里写,是会有问题的。
你可以先申明一个和那个全局变量一样,只有名字有差异的副本,让其中一个线程,访问副本,另外一个线程访问原来的变量,如果程序不会奔溃,就说明是同步的问题。
或者就直接点用简单的同步方法,mutex_lock之类的,防止这种情况
zshtiger2414
2009-11-19
打赏
举报
回复
[Quote=引用 1 楼 steedhorse 的回复:]
应该是其它的原因。
仅仅因为两个线程访问同一个变量不至于core dump,线程之间共享的东西还多着呢。
[/Quote]
我看了一下程序,真的就是因为程序用fprintf向stderr写东西的时候,因为系统内部调用pthread_mutex_lock函数出错了。
是不是因为这种加锁就可以使得在向某个变量写的时候,就会出现错误啊?
Wenxy1
2009-11-19
打赏
举报
回复
用gdb调试下。
晨星
2009-11-19
打赏
举报
回复
应该是其它的原因。
仅仅因为两个线程访问同一个变量不至于core dump,线程之间共享的东西还多着呢。
c++牛客总结
const修饰类的成员
变量
目标是常量不能被...需要分配空间,同
一个
变量
可以被声明多次,但是只能被定义一次C++ STL从广义来讲包括了三类:算法,容器和迭代器。算法包括排序,复制等常用算法,以及不同容器特定的算法。
进程和
线程
1、基本概念: 1.1定义 进程是具有一定独立功能的程序关于某个数据集合的一次运行活动,进程是操作系统...
线程
是进程的
一个
实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,
线程
自己基本...
(大集合)Linux进程和
线程
的基本编程、通讯和例程【杂记】
真正的全面!对 Linux 进程 和
线程
的基本 编程、通讯(IPC、
线程
同步) 和 例程 做
一个
大总结
【Linux】
线程
的概念{虚拟地址堆区细分/缺页中断/页/初识
线程
/创建
线程
/优缺点}
初识
线程
,Linux下的
线程
是各大设计者的精心之作!
【面经专栏】自己整理的操作系统面经
在一系列访问 Lock-Free 操作的
线程
中,如果某
一个
线程
被挂起,那么其绝对不会阻止其他
线程
继续运行 不要使用自旋锁,因为
线程
得不到锁的时候会一直在循环等待,不会进入休眠 使用互斥锁,结合条件
变量
,引入
线程
...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章