gdb调试cordump文件


自己在调试的时候,简单的使用方法,目前只是菜鸟水平,后面继续学习
资料
https://blog.csdn.net/zhangye3017/article/details/80382496

1.环境准备:

使应用崩溃可以生成core文件

ulimit -c unlimited

2.调试core文件

gdb 应用名称 XXX.core

程序崩溃,bt查看堆栈信息

Switching to thread 1 (LWP 687)]
#0 kill (pid=<optimized out>, sig=6) at src/signal/kill.c:7
7 src/signal/kill.c: No such file or directory.
(gdb) bt
#0 kill (pid=<optimized out>, sig=6) at src/signal/kill.c:7
#1 <signal handler called>
#2 congruent_aligned32 () at src/string/arm/memcpy_le.S:149
#3 0xb6dddb7c in FB_FlipHWSurface () from /usr/lib/libminigui_ths-3.2.so.0
#4 0x0012c000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
info threads 查看几个线程前面的数字是线程id

查看有几个线程,并且信息会标识出在哪个线程死掉

(gdb) info thread
Id Target Id Frame 
29 LWP 1005 __munmap (start=0xb66d3000, len=2457600)
at src/mman/munmap.c:12
28 LWP 757 __cp_end () at src/thread/arm/syscall_cp.s:25
27 LWP 1269 __cp_begin () at src/thread/arm/syscall_cp.s:23
26 LWP 1267 __cp_begin () at src/thread/arm/syscall_cp.s:23
25 LWP 1265 __cp_begin () at src/thread/arm/syscall_cp.s:23
24 LWP 1049 __cp_begin () at src/thread/arm/syscall_cp.s:23
23 LWP 1047 __cp_begin () at src/thread/arm/syscall_cp.s:23
22 LWP 1045 __cp_begin () at src/thread/arm/syscall_cp.s:23
21 LWP 1043 __cp_begin () at src/thread/arm/syscall_cp.s:23
20 LWP 1041 __cp_begin () at src/thread/arm/syscall_cp.s:23
19 LWP 1039 __cp_begin () at src/thread/arm/syscall_cp.s:23
18 LWP 1037 __cp_begin () at src/thread/arm/syscall_cp.s:23
17 LWP 1035 __cp_begin () at src/thread/arm/syscall_cp.s:23
16 LWP 1033 __cp_begin () at src/thread/arm/syscall_cp.s:23
15 LWP 1031 __cp_begin () at src/thread/arm/syscall_cp.s:23
14 LWP 1029 __cp_begin () at src/thread/arm/syscall_cp.s:23
13 LWP 1027 __cp_begin () at src/thread/arm/syscall_cp.s:23
12 LWP 1025 __cp_begin () at src/thread/arm/syscall_cp.s:23
11 LWP 1023 __cp_begin () at src/thread/arm/syscall_cp.s:23
10 LWP 1021 __cp_begin () at src/thread/arm/syscall_cp.s:23
9 LWP 1019 __cp_begin () at src/thread/arm/syscall_cp.s:23
---Type <return> to continue, or q <return> to quit---
8 LWP 1017 __cp_begin () at src/thread/arm/syscall_cp.s:23
7 LWP 1015 __cp_begin () at src/thread/arm/syscall_cp.s:23
6 LWP 1013 __cp_begin () at src/thread/arm/syscall_cp.s:23
5 LWP 1011 __cp_begin () at src/thread/arm/syscall_cp.s:23
4 LWP 755 __cp_begin () at src/thread/arm/syscall_cp.s:23
3 LWP 754 __cp_begin () at src/thread/arm/syscall_cp.s:23
2 LWP 753 __cp_begin () at src/thread/arm/syscall_cp.s:23
1 LWP 687 kill (pid=<optimized out>, sig=6)
at src/signal/kill.c:7

可以看到我们bt看到的崩溃信息是线程1的信息

跳转到29线程
bt 查看29线程的堆栈

(gdb) thread 29
SysGuard app_status: 0x14e, listen:0x4

[Switching to thread 29 (LWP 1005)]
#0 __munmap (start=0xb66d3000, len=2457600) at src/mman/munmap.c:12
12 src/mman/munmap.c: No such file or directory.
(gdb) bt
#0 __munmap (start=0xb66d3000, len=2457600) at src/mman/munmap.c:12
#1 0xb6dddc48 in FB_DoubleBufferEnable ()
from /usr/lib/libminigui_ths-3.2.so.0
#2 0x000283b8 in CvteDoubleBufferEnable ()
#3 0x000174a4 in CustomSwitchProc ()
#4 0xb6d8a724 in UpdateWindow () from /usr/lib/libminigui_ths-3.2.so.0
#5 0x00031f04 in CvteSettingsWifiSwitchProc ()
#6 0x00017414 in CustomSwitchProc ()
#7 0xb6da5a94 in DispatchMessage () from /usr/lib/libminigui_ths-3.2.so.0
#8 0x00029710 in CvteSettingsThread ()
#9 0xb6f5ffdc in start (p=0xb5ce3d2c) at src/thread/pthread_create.c:145

从上面的信息可以看出,29线程正常运行,然后调用到FB_DoubleBufferEnable->FB_FlipHWSurface触发主线程/也就是1号线程死掉,整个应用死掉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章