进程的coredump文件较大,出现问题后收集起来比较费事.本文介绍一种轻量级的办法,先将core文件里的关键debug信息打印出来,后续可以非常方便的传到日志服务器中,然后可以在服务器上通过debuginfo文件还原成有用的信息
需要准备的软件
运行产生core文件,确保linux内核开启了ELF_CORE选项,
ulimit -c unlimited && ./a
导出core信息,core文件可能在不同的位置,可查看(/proc/sys/kernel/core_pattern)
1
2
3
4
5
6
7
8
9
10
11
12
| [yubo@yubo990:~/programe/c/gdb]$cortex -i core -f reg,cal
8<--------------------------------------------------------------------------
rax:0x0000000000000000 rbx:0x0000000000000000 rcx:0x0000000000400500 rdx:0x0000000019F3ACF8
rbp:0x0000000019F3ABD0 rsp:0x0000000019F3ABD0 rsi:0x0000000019F3ACE8 rdi:0x00000000004005EC
rip:0x00000000004004C8 r8:0x0000000000400590 r9:0x0000000067D72740 r10:0x0000000019F3AA60
r11:0x00000000679C5680 r12:0x00000000004003D0 r13:0x0000000019F3ACE0 r14:0x0000000000000000
r15:0x0000000000000000 cs:0x0000000000000033 ss:0x000000000000002B orig_rax :0x00000000FFFFFFFF
eflags:0x0000000000010202
Call trace:
#0 at 0x00000000004004c8
#0 at 0x00000000004004f3 in <main> |