crash - 如何读取 Ubuntu 12.04 上的崩溃文件?

标签 crash gdb ubuntu-12.04 php coredump

php5-fpm 在我们身上崩溃了,我们想获得有关当时正在执行什么的信息。我们无法从 xdebug 中获取它,因为它一直在生产中发生。

我将故障实例的驱动器挂载到另一个 (/mnt) 上并尝试读取崩溃文件:

版本信息

root@dev:/mnt/var/crash# cat /mnt/etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS"

尝试用 gdb 打开崩溃文件 .. 但无法识别:

root@dev:/mnt/var/crash# gdb /mnt/usr/sbin/php5-fpm _usr_sbin_php5-fpm.1002.crash 
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /mnt/usr/sbin/php5-fpm...(no debugging symbols found)...done.
"/mnt/var/crash/_usr_sbin_php5-fpm.1002.crash" is not a core dump: File format not recognized

然后尝试崩溃:

root@dev:/mnt/var/crash# crash _usr_sbin_php5-fpm.1002.crash 

crash 6.1.6
Copyright (C) 2002-2013  Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
Copyright (C) 1999-2006  Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011  NEC Corporation
Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions.  Enter "help copying" to see the conditions.
This program has absolutely no warranty.  Enter "help warranty" for details.

crash: _usr_sbin_php5-fpm.1002.crash: not a supported file format

文件本身有一些基本信息,但它的内容似乎是 base64 编码的:

[...]
Signal: 11
Uname: Linux 3.2.0-59-virtual x86_64
UserGroups:
CoreDump: base64
 H4sICAAAAAAC/0NvcmVEdW1wAA==
[...]

关于如何阅读此内容的任何想法?

最佳答案

您想阅读“我如何使用这些崩溃报告?”节here .

使用 apport-unpack 解压核心转储,GDB 将能够对其进行分析。

关于crash - 如何读取 Ubuntu 12.04 上的崩溃文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22418508/

相关文章:

c - malloc 在第四次调用时使程序崩溃

swift - 快速错误当我删除一行时,它崩溃了

linux - 为什么我的核心文件没有被覆盖?

linux - ubuntu - make 后权限被拒绝

java - 在 Ubuntu 上启动 Eclipse 时出错,JVM 终止退出代码 = 13

iphone - iPhone NSTimer失效有问题

crash - 从[[[NSUserDefaults standardUserDefaults] persistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]] objectForKey:@“AppleLocale”] [0]崩溃;

gdb - 在 GDB 中设置断点

gdb 可以调试 gcc 风格的嵌套 C 函数吗?

hadoop - 运行 "hadoop version"命令时找不到文件/命令。 Hadoop安装