我目前正在开发"Creation of Postmortem data logger in Linux on Intel architecture"。它只不过是核心实用程序的创建。有没有人可以分享关于在Linux内核中内部实现的应用程序崩溃时,产生core dump的各种信号(SIGSEGV,SIGABRT,SIGFPE etc)的信号处理器的细节。我需要根据自己的用户需求重写这些信号处理程序,并重新构建内核。它使我的内核产生核心文件(在应用程序崩溃时),满足用户特定的需求,比如显示registers,stackdump and backtrace etc。
有没有人能分享一下
我发现了一个有用的主题,用于从Window上的核心转储文件()中查找导致崩溃的代码行。但我找不到适用于Linux的类似主题。有时我在测试系统上有核心转储,但由于缺少调试信息,我无法分析它们。我不能复制这个崩溃,所以我不能调试它们。Gdb stacktrace显示了堆栈,如下所示:
#0 0x00a2b430 in __kernel_vsyscall ()
#1 0x01522b11 in raise () from /lib/libc.so.6
#2 0x015243ea in abort () from /lib/libc.so.6
#3 0x08126e9f in ?? ()
#4
我们有一个进程一直在生成一个核心转储文件,但甚至不确定是哪个进程。我按照指示使用崩溃实用程序来分析核心转储文件。我不得不安装一个新的回购和安装崩溃。现在它在运行,我明白了:
crash: /usr/lib/debug/lib/modules/3.10.0-229.14.1.el7.x86_64/vmlinux and /home/user/d336599/core.26061 do not match!
知道解决办法吗?