腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
处理
SIGSEGV
。
C
请解释一下我该如何
处理
这个问题。
浏览 12
提问于2020-04-23
得票数 1
回答已采纳
1
回答
如何使子进程在收到
SIGSEGV
后异常退出?
、
、
我编写了一个程序,故意让子进程触发
SIGSEGV
。但是,我希望子进程不正常地终止。现在,我在信号
处理
程序中使用exit()。但是exit()调用总是会产生正常的终止。我应该使用哪一种功能来实现这一点?另一个问题是如何让父进程知道子进程因为
SIGSEGV
而终止?(); snprintf(buf, 100, "child %d terminated by signal 11", (int)pid); exit(-1
浏览 7
提问于2017-06-03
得票数 1
1
回答
后台进程在
SIGSEGV
之后继续工作
、
、
程序收到
SIGSEGV
信号,但它没有立即停止,根据日志时间,当它收到
SIGSEGV
是- 01:11:45.085,当它停止工作的时间是- 01:11:48.219,它是多线程的,并且在
SIGSEGV
生成的时候那么,问题是,即使生成
SIGSEGV
的线程没有执行mo操作,程序是如何在额外的3秒内工作的? 谢谢。
浏览 0
提问于2013-05-23
得票数 1
2
回答
如何防止iOS坠机记者破坏MonoTouch应用程序?
、
、
、
、
引用罗尔夫的话,一个Xamarin开发人员, 空引用异常最初实际上是
SIGSEGV
信号。通常,mono运行时
处理
此操作并将其转换为空引用异常,从而允许执行继续。问题是
SIGSEGV
信号在ObjC应用程序中是一件非常糟糕的事情(当它发生在托管代码之外时),所以任何崩溃报告解决方案都会将其报告为崩溃(并杀死应用程序)--这发生在MonoTouch有机会
处理
SIGSEGV
浏览 9
提问于2013-01-24
得票数 50
回答已采纳
1
回答
如何在Android中检查NDK错误日志?
、
我遇到了这样的NDK错误日志: 根据,我使用NDK堆栈来
处理
NDK日志。但它没有显示/tmp/foo/crasher/jni/foo.
c
:9这样的详细行,我猜这可能是造成封闭源库
浏览 3
提问于2017-07-15
得票数 0
回答已采纳
1
回答
在多线程程序中捕获
SIGSEGV
和SIGFPE等信号
、
、
、
如果主程序导致
SIGSEGV
或其他信号被引发,我需要在终止前确保队列是空的。pthread_sigmask 阻止信号,但我注意到在上读取信号列表:
浏览 0
提问于2013-11-30
得票数 6
回答已采纳
1
回答
有没有办法返回
C
中导致
SIGSEGV
的地址?
、
我是一个
C
虚拟人,在一个
C
项目中工作,这个项目要求我编写一个信号
处理
程序来捕获
SIGSEGV
信号并执行一些操作。 基本上,主程序将尝试访问一个既不可读也不可写的内存块。当主程序访问这个内存块时,它将引发一个
SIGSEGV
信号,在我的信号
处理
程序函数中,我将捕获该信号,并使用mprotect()将该内存块转换为可读和可写的内存块。但是当信号被我的信号
处理
程序捕获时,我不知道有什么方法可以得到导致
SIGSEGV
的地址。如果我没有导致
SIGSEGV<
浏览 0
提问于2018-11-28
得票数 5
回答已采纳
2
回答
SIGSEGV
在由“`kill`”生成时是否特殊?
、
、
、
、
我知道,当内核使用
SIGSEGV
报告内存访问冲突时,不能忽略它。但是,如果我为
SIGSEGV
安装了一个什么都不做的信号
处理
程序,然后另一个进程使用向我发送信号,这是否会像我使用“正常”信号(比如SIGUSR1)一样呢?
浏览 4
提问于2014-01-26
得票数 2
3
回答
关于如何在多线程环境中捕获
SIGSEGV
、
、
我想知道在多线程环境中捕获
SIGSEGV
信号的推荐方法是否可行。我特别感兴趣的是
处理
由类似于
SIGSEGV
的东西引发的*((int *)0) = 0。关于这个主题的一些阅读使我了解到signal()和sigaction(),它们安装了一个信号
处理
程序。虽然在多线程环境中这两者都不是很有希望的。它的工作范围是使用raise()在线程中或当信号是由类似于
SIGSEGV
的kill -
SIGSEGV
发送到进程时发出的;然而,\*((int*)0) = 0仍然会终止该进程。我的测试程序如下 voi
浏览 10
提问于2013-04-25
得票数 8
2
回答
为什么
SIGSEGV
没有破坏这个过程?
、
、
但是,在调试模式下运行时,调试器(gdb)在第一个函数调用中检测到
SIGSEGV
,然后放弃运行该方法的其余部分。当在代码中的其他地方故意做非法的事情时,我注意到了同样的行为。
浏览 1
提问于2019-04-05
得票数 1
回答已采纳
1
回答
posix信号灯Sys V SEM_UNDO的等价性
、
、
、
、
在具有多个进程的Linux系统中,system信号量允许一个SEM_UNDO选项,如果持有信号量的进程崩溃,则防止信号量“卡住”。防止POSIX信号量因持有信号量的进程崩溃而受到干扰的正确方法是什么?或者POSIX 是否保证在发生崩溃时释放信号量?
浏览 9
提问于2015-01-21
得票数 8
2
回答
为什么不能使用signalfd捕获
SIGSEGV
?
、
我从man 2 signalfd中修改了这个示例,并在实例中添加了sigaddset(&mask,
SIGSEGV
)。但是在生成
SIGSEGV
时,我无法获得输出。 sigaddset(&mask, SIGINT); sigaddset(&mask,
SIGSEGV
浏览 11
提问于2014-01-18
得票数 4
回答已采纳
1
回答
如何在iOS上获取当前信号
处理
程序?
、
、
嗨,我需要得到用这个方法设置的当前信号
处理
程序:怎么做?
浏览 3
提问于2015-02-15
得票数 2
回答已采纳
1
回答
当应用程序在
SIGSEGV
崩溃时执行最后一次TFLog
、
、
TestFlight一直在给我一些
SIGSEGV
崩溃报告。 我找到了一种精确定位问题的方法。
浏览 2
提问于2014-06-05
得票数 2
回答已采纳
1
回答
错误条件是固定的,仍然在
C
中得到
SIGSEGV
、
在下面的代码中,我将
处理
SIGSEGV
信号,并通过最小化绑定变量来修复错误条件。我猜每当信号
处理
程序返回时,它就会重新启动发生信号的指令。在信号
处理
程序中,我最小化了有界变量,但仍然得到
SIGSEGV
并进入无限循环。SIG_segfault_handler(int);{ signal(
SIGSEGV
This is segmentation fault..
浏览 1
提问于2016-12-22
得票数 1
回答已采纳
1
回答
$?内压阱
、
、
、
从bash脚本中,我试图
处理
来自
c
++程序的分段错误。我读过在SIGCHLD上使用SIGCHLD可用于此目的的文章。在陷阱中,我应该能够测试$?以从程序获得返回代码。例如,请参见。/
sigsegv
{ cout << "
C
++ will now cause a
SIGSEGV
" << en
浏览 2
提问于2013-07-29
得票数 4
回答已采纳
1
回答
SIGSEGV
在
处理
后发送了两次崩溃程序
、
、
、
我有一个
C
库的一部分测试程序,在这里我
处理
信号。这个测试程序中有很多代码--太多了,以至于我觉得在这里发布它只会使我的问题更难回答。 基本上,我在迫使系统在后台线程中给我发送一个
SIGSEGV
。我
处理
那个信号,然后测试结束。主线程将等待这一点,信号
处理
程序的一部分是重新启动主线程。当主线程重新启动时,我通过 signal(
SIGSEGV
, SIG_DFL) 恢复默认的信号
处理
程序,然后得到,另一个
SIGSEGV
。我知道我有很多代码,这很可能是我的错,
浏览 0
提问于2016-03-04
得票数 0
1
回答
是否有一种方法只阻止
SIGSEGV
的异步传递,或者找到传递模式?
、
、
、
、
在
C
/
C
++程序中,我使用mprotect和已安装的
SIGSEGV
信号
处理
程序(使用GNU )来实现写屏障(用于世代GC)。当进入写障时,由内核同步传送存储器保护故障信号。为了确保信号
处理
程序总是被同步调用(否则我的代码可能死锁),我想阻止
SIGSEGV
信号的异步传递(例如通过kill (2))。有办法这样做吗?或者,信号
处理
程序是否有一种方法可以确定信号是否同步传递?
浏览 2
提问于2022-03-16
得票数 1
1
回答
Android NDK:
处理
由Java端的任何线程引起的
SIGSEGV
、
、
、
、
其中一些可能会导致分段违规(
SIGSEGV
)。我希望能够从使用NDK的
C
编写的信号
处理
程序中捕获所有的违规行为,而不管是哪个线程引起的。 实际上,我已经使用sigaction编写了这样的
处理
程序。这是因为
SIGSEGV
被传递给导致冲突的线程,而SIGKILL则被传递给进程。结果,我的
处理
程序没有接收到由其他线程引起的
SIGSEGV
,并且程序被终止。有没有办法将所有
SIGSEGV
重定向到我的
处理
程序?或者,一种覆盖所有线程的默认
浏览 0
提问于2015-10-15
得票数 0
2
回答
SIGSEGV
上的11分贝断裂
、
、
、
gdb来自Linux/gdb世界,默认情况下,在检测到SEGV之前,gdb会在默认
处理
程序清理进程之前中断程序的执行。(lldb) process handle -p true -n true -s true
SIGSEGV
NAME PASS STOP NOTIFY
SIGSEG
浏览 1
提问于2014-10-23
得票数 7
点击加载更多
相关
资讯
C 错误处理
C+之异常处理
C语言——预处理基本知识
图像处理之中值滤波介绍及C实现
C语言中的预处理基本知识
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
云直播
活动推荐
运营活动
广告
关闭
领券