草庐IT

c++ - 如何使用 SIGSEGV 的信号处理程序调试程序

我正在为应用程序编写插件,偶尔会抛出一个SIGSEGV。但是,应用程序捕获信号SIGSEGV。换句话说,插件是一个动态库。错误发生在我的插件和动态库中。但应用程序处理sSIGSEGV并正常退出。因此,我很难调试并获取所有堆栈帧的回溯。任何想法?目前我使用gdb作为调试工具。 最佳答案 GDB将在应用程序之前捕获SIGSEGV。您在对Logan的回答的评论中描述的内容毫无意义。我怀疑真正发生的事情是应用程序创建了一个新进程,并且只在另一个进程中获取SIGSEGV,而不是您将GDB附加到的进程。如果我的猜测是正确的,下面的命令可能会有用

c++ - 如何使用 SIGSEGV 的信号处理程序调试程序

我正在为应用程序编写插件,偶尔会抛出一个SIGSEGV。但是,应用程序捕获信号SIGSEGV。换句话说,插件是一个动态库。错误发生在我的插件和动态库中。但应用程序处理sSIGSEGV并正常退出。因此,我很难调试并获取所有堆栈帧的回溯。任何想法?目前我使用gdb作为调试工具。 最佳答案 GDB将在应用程序之前捕获SIGSEGV。您在对Logan的回答的评论中描述的内容毫无意义。我怀疑真正发生的事情是应用程序创建了一个新进程,并且只在另一个进程中获取SIGSEGV,而不是您将GDB附加到的进程。如果我的猜测是正确的,下面的命令可能会有用

gdb可以自动在SIGSEGV上附加一个进程吗

我有一个错误的程序,当执行时收到一个SIGSEGV。我可以像这样使用gdb:$gdb./prog但我更希望gdb从prog捕获SIGSEGV并自动附加它。$./progSegmentationFault(gdb)...有办法吗?谢谢 最佳答案 嗯。您可以设置信号处理程序以使用当前进程启动调试器。这样您就可以“实时”检查整个状态。#include#include#include#includeconstchar*prog=0;voidfn(intsignum){charbuf[256];snprintf(buf,255,"ddd%s%

gdb可以自动在SIGSEGV上附加一个进程吗

我有一个错误的程序,当执行时收到一个SIGSEGV。我可以像这样使用gdb:$gdb./prog但我更希望gdb从prog捕获SIGSEGV并自动附加它。$./progSegmentationFault(gdb)...有办法吗?谢谢 最佳答案 嗯。您可以设置信号处理程序以使用当前进程启动调试器。这样您就可以“实时”检查整个状态。#include#include#include#includeconstchar*prog=0;voidfn(intsignum){charbuf[256];snprintf(buf,255,"ddd%s%

c++ - 输入函数时的 SIGSEGV

刚进入函数时什么会导致段错误?输入的函数如下所示:21:voideesu3(Matrix&iQ)22:{其中Matrix是一个struct。当使用GDB运行时,回溯产生:(gdb)backtrace#0eesu3(iQ=...)at/home/.../eesu3.cc:22#1...GDB没有说明什么是iQ。...确实存在。什么会导致这个?海湾合作委员会:(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3使用-O3-g构建的程序来电者是这样的:Matrixq;//dosomestuffwithqeesu3(q);这里没什么特别的我用valgrind重新运行程序:val

c++ - 输入函数时的 SIGSEGV

刚进入函数时什么会导致段错误?输入的函数如下所示:21:voideesu3(Matrix&iQ)22:{其中Matrix是一个struct。当使用GDB运行时,回溯产生:(gdb)backtrace#0eesu3(iQ=...)at/home/.../eesu3.cc:22#1...GDB没有说明什么是iQ。...确实存在。什么会导致这个?海湾合作委员会:(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3使用-O3-g构建的程序来电者是这样的:Matrixq;//dosomestuffwithqeesu3(q);这里没什么特别的我用valgrind重新运行程序:val

android - 应用程序随机崩溃,致命信号 7 (SIGBUS),代码 2 或致命信号 11 (SIGSEGV),代码 1

上下文我正在创建一个应用程序,它应该在Fragment上显示一些图像,其中大部分是从Internet下载的。我正在使用Glide在我的CardViews和Fresco上为我处理该图像加载在我的图像slider上(thisquestiononSO解释了我为什么使用两个图像库)。lib的Fresco部分主要基于thisforkAndroidImageSlider.重要提示:我尝试加载的图像可以是PNG或SVG。更多信息:我使用的是MotoMaxx(DroidTurbo的国际版)运行Android5.0.2。在运行Android4.4.2(氰模块)的三星GalaxyS4上也发生过这种情况,但

android - 应用程序随机崩溃,致命信号 7 (SIGBUS),代码 2 或致命信号 11 (SIGSEGV),代码 1

上下文我正在创建一个应用程序,它应该在Fragment上显示一些图像,其中大部分是从Internet下载的。我正在使用Glide在我的CardViews和Fresco上为我处理该图像加载在我的图像slider上(thisquestiononSO解释了我为什么使用两个图像库)。lib的Fresco部分主要基于thisforkAndroidImageSlider.重要提示:我尝试加载的图像可以是PNG或SVG。更多信息:我使用的是MotoMaxx(DroidTurbo的国际版)运行Android5.0.2。在运行Android4.4.2(氰模块)的三星GalaxyS4上也发生过这种情况,但

Vitis HLS报错(已解决):@E Simulation failed: SIGSEGV. ERROR

在VitisHLS2021.2中构建了一个使用了多个超大数组的函数,仿真时报错但并未定位在何处,只给出以下信息:@ESimulationfailed:SIGSEGV.ERROR排查过程为:Baidu&Google发现原因可能有以下几个:原因1:数组/指针越界仔细排查了三遍,发现确实可能存在一些越界寻址错误,经过修改还是报一样的仿真错误信息,遂跳至原因2。原因2:图像地址错误我给函数的输入为自定义的数组,并未使用导入图像/数据,遂跳至原因3。原因3:代码内存资源(堆栈)空间不足这个可能性来自于UG902(中文版)的解释,原话是:“仿真可能因内存不足而失败,因为数组置于内存中存在的堆栈上,而不是置

java - 致命信号 11 (SIGSEGV) 位于 0x00000000 (code=1) - PhoneGap

我现在使用PhoneGap开发Android应用程序。最近,当我尝试在HTML页面之间切换时,应用程序关闭,并且在LogCat中出现以下错误:12-2415:43:39.237:A/libc(23631):Fatalsignal11(SIGSEGV)at0x00000000(code=1),thread23631(.example.app)我在谷歌上搜索了一下这个错误,我的理解是它与设备的内存有关。我找到了一些解决方案,但并没有意识到我是如何在PhoneGap中实现它们的。这里有人遇到过这个错误吗?我能做些什么来解决这个问题?谢谢你:) 最佳答案