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號線程死掉,整個應用死掉

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