我有网页守护程序和请求,使它失败与SIGSEGV。因此,我启动守护进程,使用gdb附加,继续,发送请求,并获得以下内容:
$ gdb attach -p 630066
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)
如何在杀死应用程序之前使gdb打印堆栈跟踪?应用程序没有子进程,只有线程。
谢谢。
我使用eclipse和ndk-gdb来调试我的AndroidNDK程序,但是我发现了一个问题,ndk-gdb工具似乎没有在程序崩溃时“保存堆栈”的功能,我无法从ndk-gdb中找到详细的信息,它没有指出哪个函数,哪个类和哪一行,只是给出这样的信息:*程序从D:/android/ndk/samples/mango_d/obj/local/armeabi/libc.so*收到信号SIGSEGV,分段错误。0xafd0cda4 in memcpy ()
所以,我想知道当程序崩溃时,有没有办法看到更多的信息(程序调用的最后一句话或其他句子),谢谢。
我在这个网站上搜索了很多关于这个错误的答案,code.But,他们中没有人真正帮助过:
在我的上下文中,我的活动有一个网络视图,它将从互联网上的某个地方加载新闻内容(文章)。在移动到其他屏幕几次之后,我在我的应用程序崩溃之前收到了那个信号Fatal signal 11 (SIGSEGV) at 0x00000200 (code=1)。在这种情况下,堆栈跟踪中没有其他信息似乎是有用的。
有人经历过这个问题吗?任何线索都很感激。
首先,我将指出,这里的操作系统是RTEMS,它是一个开放源码的RTOS,源代码可以在这里找到:
我有一个非常简单的程序,它使用文档中的sigaction调用为SIGSEGV设置一个信号处理程序(我相信这是支持的):
我的程序基本上可以归结为:
void HandleAndPrintSignal()
{
printf("I am in the segfault signal handler AND I WILL HANDLE YOUR SIG!!!!\n");
exit(1);
}
void *POSIX_Init(void *args)
{
pri
如果我有一个无限递归错误,当我在ddd中发现这一点时,它需要很长时间才能从段错误中产生回溯。
如果a、b,、c,等是函数,并且调用堆栈为
a b c c c c ... (thousands) ... c c (SIGSEGV)
或
a b c b c ... (thousands) ... b c b c (SIGSEGV)
生成相关的堆栈跟踪可能需要几分钟的时间。
如果我怀疑是这样的话,有没有一种方法可以告诉gdb/ddd快速跳到重复的开头,而不是等待它一直跟踪到后面呢?
我在Mac上做一些C++编程,想打印出崩溃或异常时的堆栈跟踪。在下面的讨论中,我尝试了MacPort的gcc47和苹果的llvm-gcc42。
我之所以开始使用glog,是因为它可以打印出非常漂亮的堆栈跟踪。如果我通过访问空指针让程序崩溃,它看起来可以打印以下堆栈跟踪:
*** Aborted at 1333289352 (unix time) try "date -d @1333289352" if you are using GNU date ***
PC: @ 0x1091a9137 C::h()
*** SIGSEGV (@0x0) received by
我有以下堆栈跟踪。有没有可能从中找出对调试有用的东西?
Program received signal SIGSEGV, Segmentation fault.
0x00000002 in ?? ()
(gdb) bt
#0 0x00000002 in ?? ()
#1 0x00000001 in ?? ()
#2 0xbffff284 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)
当我们得到一个Segmentation fault,而堆栈跟踪没有那么有用时,从
我正在自学使用gdb,并进行了一些随机测试。值得一提的是,我在Windows7 x64上使用的是MinGW的便携安装。我创建了一个程序,我知道它会导致堆栈溢出,当我在gdb中运行它时,我首先得到两个SIGSEGV信号(这并不奇怪),然后它退出(同样也不奇怪),并返回代码030000000375。
Program received signal SIGSEGV, Segmentation fault.
Program received signal SIGSEGV, Segmentation fault.
Program exited with code 030000000375.
好奇心占了我