腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
在C中使用进程和两个线程
的
信号
处理不起作用
、
、
我正在使用以下示例(基于
linux
中pthread_sigmask
的
手册页中
的
示例):#include <stdio.h>Segmentation fault 您可以看到,
信号
处理程序不会输出“分段
错误
”字符串,因此它一定来自默认处理程序。如果
是
default,那么它就有点破坏了示例
的
目的--设置一个
信号<
浏览 8
提问于2011-09-10
得票数 2
1
回答
使用非规范地址检索内存数据将导致SIGSEGV而不是SIGBUS。
、
、
、
、
我无法产生以下汇编程序代码
的
“总线
错误
”。在这里,我使用
的
内存地址不是合法
的
“规范地址”。那么,我如何触发这个
错误
呢?我在NASM 2.14.02
的
Ubuntu20.04LTS下运行了这个代码片段,但是它导致加载SIGSEGV分段
错误
,而不是SIGBUS。text mov rax, [qword 0x11223344557788] xor rdi, rdi编译后相应
的</e
浏览 12
提问于2020-06-28
得票数 2
回答已采纳
1
回答
捕获所有
信号
等价于捕捉所有
段
故障?
、
、
、
、
我想知道是否有一种方法可以捕获所有
段
故障/核心转储,并打印其调用堆栈?捕捉所有
信号
似乎
是
可行
的
方法,但我不太确定它是如何工作
的
,根据我
的
一些经验,它并不总是给出我想要
的
结果,有时它只是没有抓住核心倾倒,也许我做错了什么。我问这个问题
的
原因
是
,我通常使用一个非常复杂
的
系统进行调试,而且许多分段
错误
很难再现,而且用gdb逐行运行也不太实际。因此,如果我能够捕捉到所有的片段
错误
浏览 0
提问于2020-08-19
得票数 0
回答已采纳
1
回答
设置了
信号
处理程序
的
子线程无法捕获SIGUSR1
的
原因是什么?
、
、
我遇到了一些奇怪
的
事情,我想可能
是
我不理解
Linux
中线程
的
复杂性。我用signal(SIGUSR1, &callback)在我
的
子线程中注册了一个
信号
处理程序,并且没有对我
的
父线程中
的
信号
进行特殊处理。我
的
子线程每隔一
段
时间就会引发一个SIGUSR1。但是,它会在退出
的
主线程中导致未处理
的
信号
错误
。如何重现这种行为?当
浏览 0
提问于2017-04-11
得票数 1
1
回答
共享内存和进程存储(IPC)
、
、
、
这是Advanced编程
的
摘录: 即使在所有使用
信号
量
的
进程终止后,
信号
量仍然存在。使用
信号
量集
的
最后一个进程必须显式地删除它,以确保操作系统不会耗尽semaphores.To,使用
信号
量标识符调用semctl,使用集中
的
信号
量数量,以IPC_RMID作为第三个参数,任何联合
信号
值作为第四个参数(被忽略),调用进程
的
有效用户ID必须与
信号
量
的
分配程序(或调用方必
浏览 3
提问于2010-04-29
得票数 1
回答已采纳
1
回答
当本机(C/C++)进程在
linux
中未崩溃时,如何显式转储该进程
的
调用堆栈信息
、
、
伙计们: 如您所知,在
linux
/android中,当一个进程接收到一些SIGs,这意味着该进程发生了崩溃,例如页面
错误
、
段
错误
等,那么对于这些
信号
,系统
的
默认行为将首先转储核心信息,包括调用堆栈信息,但有时,虽然我
的
程序没有崩溃,但它实际上已经异常运行,并不是我所期望
的
。然后,我想确切地知道它现在正在运行哪些代码,所以我想手动转储它
的
调用堆栈信息。那该怎么办呢?是否手动发送
段
故障
信号
给它
浏览 2
提问于2013-06-22
得票数 0
2
回答
sem_post()失败,
信号
量有效
、
我有一个带有
信号
量
的
队列。尽管
信号
量本身
是
有效
的
,但在某些情况下,所有对sem_post()
的
调用都会返回“Invalid argument”
错误
信号
量
是
C++对象
的
私有成员,永远不会被删除,它也可以在gdb中被检查。
浏览 1
提问于2009-03-26
得票数 1
回答已采纳
1
回答
接收SIGCHLD尚未派生任何子进程
、
、
、
我有一个运行在
Linux
3.12上
的
C程序。这个程序产生了几个子进程。其中一个进程产生一个线程,该线程运行一
段
时间,然后终止。该子进程在运行时执行一个epoll_wait()。epoll_wait会定期返回EINTR
错误
。我设置子进程以捕获执行此中断
的
信号
,并发现它是一个
信号
17,根据我读取
的
所有内容,它是一个SIGCHLD。问题
是
,该子进程产生
的
线程仍在运行。对于为什么我
的
进程可能收到
信
浏览 29
提问于2017-03-01
得票数 0
回答已采纳
2
回答
是否将SIGSEGV发送到每个线程?
、
、
、
我在
Linux
上有一个多线程
的
程序。有一些特定
的
内存区域,我有兴趣查看它们是否在特定
的
时间
段
内被写入。为此,我只提供对这些内存页
的
读访问权限,并为SIGSEGV安装一个
信号
处理程序。现在我
的
问题
是
,每个线程会为自己调用
信号
处理程序吗?假设线程1写入一些禁止
的
内存区,它会执行
信号
处理程序吗?
浏览 1
提问于2011-06-30
得票数 18
回答已采纳
1
回答
ELK度量
信号
连接
错误
在从Windows服务器到
linux
服务器
的
已安装度量
信号
连接中,我收到一个
错误
,
错误
如下。“发布事件时出现连接
错误
(重试):Get :拨号tcp xxx.xxx:9200: connectex:连接尝试失败,因为连接方在一
段
时间后没有正确响应,或建立
的
连接失败,因为连接
的
主机没有响应。”
浏览 3
提问于2016-11-24
得票数 0
3
回答
fork中
的
信号
、
、
分支中
的
信号
行为是什么。所有
信号
都应该在fork中继承吗?如果不是,那么
是
哪一个?为什么?
浏览 1
提问于2010-07-12
得票数 9
1
回答
什么
是
致命
信号
?
、
Linux
编程接口
是
这样写
的
: TASK_KILLABLE :这种状态类似于TASK_UNINTERRUPTIBLE,但如果接收到致命
信号
(即会杀死进程
的
信号
),则会唤醒该进程。通过将内核代码
的
相关部分转换为使用此状态,可以避免挂起进程需要重新启动系统
的
各种情况。相反,进程可以通过发送致命
的
信号
来终止。要转换为使用TASK_KILLABLE
的
第一
段
内核代码
是
NFS
浏览 0
提问于2018-12-24
得票数 4
回答已采纳
2
回答
找出谁(什么)杀死了我
的
进程
、
、
、
、
当我从bash脚本运行我
的
java程序时,过了一
段
时间后,我收到一条消息:我将bash参数设为最大值:ulimit -Sc unlimited但是当我在执行后生成CTRL+C时,我会遇到这样
的
错误
: OpenJDK 64-Bit Server VMdispatching signal SIGINT to handler- the VM may need to be for
浏览 2
提问于2012-12-01
得票数 1
回答已采纳
2
回答
linux
中用于进程
的
Mutexes
、
、
如何在
linux
中创建一个可以处理不同进程并具有字符串名称
的
互斥对象? 我想要类似于Windows中
的
CreateMutex。
浏览 4
提问于2014-07-06
得票数 0
回答已采纳
1
回答
通过alsa输出声音
的
函数在通过pthread create调用时不起作用:没有声音,CPU使用率为100%
、
、
、
、
为了让“停止”消息起作用,我需要声音从一个单独
的
线程播放。我
的
解决方案
是
在使用pthread_create()调用
的
函数中使用alsa播放声音,并在收到停止消息时使用pthread_cancel()结束线程。播放声音
的
函数称为play_sound(void *args);struct args *args; args->fp = fopen("path/to/soundfile.wav", &
浏览 13
提问于2020-07-14
得票数 0
2
回答
操作系统内部究竟发生了什么导致分段故障
、
我读了很多关于虚拟地址和寻呼
的
内容。让我先告诉你们我所理解
的
。当一个进程想要执行某件事时,它会尝试将数据从硬盘加载到内存中。为此,它使用虚拟地址。所以我们
的
MMU验证虚拟地址,在TLB中查找相应
的
物理页,如果没有找到,就查找倒置
的
页表,最后查找页表,如果在那里没有找到条目,它会生成一个页
错误
,所有页
的
交换都完成了,所有的表都将更新。在我读
的
时候,所有的进程都有不同
的
页表和相同
的
虚拟地址。因此,如果我尝试访问一个被定义
浏览 0
提问于2012-11-05
得票数 1
1
回答
C中父进程和子进程之间
的
故障发送
信号
、
、
、
、
我正在按照指导方针为我
的
学习做项目,我有一个问题。我必须使用
信号
和管道进行通信,具体如下: 不幸
的
是
,当我发送一个支持
的
信号
(例如,20)到处理时,2个
信号
被循环
浏览 1
提问于2016-01-10
得票数 1
回答已采纳
2
回答
Linux
内核--如何阻止一个线程等待
信号
量?
、
、
、
、
在编写
Linux
内核模块时,我遇到了一个问题,在等待
信号
量解锁时,我无法唤醒这个问题。这将导致线程不可阻挡,并导致rmmod在卸载模块时冻结。请注意:这个模块运行在一个3.10内核上,我无法将其更新到一个更新
的
版本(客户要求运行在库存CentOS 7上,其中包含一个3.10内核)。 下面
是
模块源代码中有趣
的
部分。它代表了一个简单
的
生产者消费者问题,列表不受大小限制(因此不需要生产者
信号
量)并由互斥保护。从列表中获取某些内容
的
函数由一个
信号</e
浏览 8
提问于2016-10-20
得票数 3
回答已采纳
2
回答
在Python中注册
信号
处理程序
的
正确方法是什么?
、
、
我有一个python应用程序,在这个应用程序中,我以类似于以下方式从一个主进程创建了几个multiprocessing.Process对象
的
新实例: def bar(some_var): do stuff forever 我注意到,如果在生成子进程之前在主进程中注册一个
信号
处理程序,那么
信号
事件将导致每个派生进程调用
信号
处理程序。如果在生成子进程之后注册
信号
处理程
浏览 4
提问于2014-10-07
得票数 1
回答已采纳
1
回答
POSIX实时
信号
能实现软实时吗?
、
、
、
、
来自: 一般而言,RTAI不支持POSIX API。那么,当POSIX实时
信号
被发送到RTAI
的
实时任务时,控制被转移到用户空间?但是我认为,因为POSIX
信号
也是实时
的
,所以它们可以写在内核模块(?)中。那么,怎么能说它会导致软实时呢?我不太清楚这句话
的
原因,请解释一下
浏览 1
提问于2012-04-21
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux中标准输出和标准错误的重导向
你真的懂Linux线程和信号的关系吗?
红帽Linux 7和CentOS 7的新Linux内核更新修复两个错误
修复Arch Linux中的 “invalid or corrupted package(PGP signature)” 错误
linux非阻塞的socket发送数据出现EAGAIN错误的处理方法
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
实时音视频
活动推荐
运营活动
广告
关闭
领券