Android ndk调试 - 可疑堆栈损坏

时间:2017-05-25 08:53:39

标签: linux android-ndk

我在linux和android上的调试经验有限。我已经移植了一个在Android上运行的C ++应用程序。有很多线程(大约15个),我将它们的堆栈大小设置为16384.当我运行二进制文件时,它会随机崩溃。从堆栈跟踪来看,它没有多大意义。有时它会在localtime_t内崩溃。

我注意到SP周围的区域都是FFFFFFFF。是一些堆栈损坏。或者我超过了堆。关于如何调试它的任何指针。我怀疑内存泄漏不会导致此类问题。

I/DEBUG   (   80):     r0 42b4c358  r1 00000000  r2 00000000  r3 00000000
I/DEBUG   (   80):     r4 42b24008  r5 00000000  r6 42b241d0  r7 41820d90
I/DEBUG   (   80):     r8 40020cc9  r9 41819000  sl 42b241d4  fp 401b62ec
I/DEBUG   (   80):     ip 42b241d0  sp 41816d40  lr 40046387  pc 40046396  cpsr 60010030
I/DEBUG   (   80):     d0  323320657a697320  d1  6b63617473207465
I/DEBUG   (   80):     d2  6568635320646165  d3  7963696c6f502064
I/DEBUG   (   80):     d4  0000000000000000  d5  0000000000000000
I/DEBUG   (   80):     d6  0000000000000000  d7  bd6bc8e300000000
I/DEBUG   (   80):     d8  0000000000000000  d9  0000000000000000
I/DEBUG   (   80):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (   80):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (   80):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (   80):     d16 41ca6a16232db22d  d17 3f50624dd2f1a9fc
I/DEBUG   (   80):     d18 41b315d6d5000000  d19 0000000000000000
I/DEBUG   (   80):     d20 0000000000000000  d21 0000000000000000
I/DEBUG   (   80):     d22 0000000000000000  d23 0000000000000000
I/DEBUG   (   80):     d24 0000000000000000  d25 0000000000000000
I/DEBUG   (   80):     d26 0000000000000000  d27 0000000000000000
I/DEBUG   (   80):     d28 0000000000000000  d29 0000000000000000
I/DEBUG   (   80):     d30 0000000000000000  d31 0000000000000000
I/DEBUG   (   80):     scr 00000010
I/DEBUG   (   80):
I/DEBUG   (   80): backtrace:
I/DEBUG   (   80):     #00  pc 00034396 
I/DEBUG   (   80):     #01  pc 0000ecdd  
I/DEBUG   (   80):     #02  pc 0000d228  
I/DEBUG   (   80):     #03  pc 0000d3c0 
I/DEBUG   (   80):
I/DEBUG   (   80): stack:
I/DEBUG   (   80):          ........  ........
I/DEBUG   (   80):          ........  ........
I/DEBUG   (   80):     #01  41820da8  41820dd0
I/DEBUG   (   80):          41820dac  40020cc9  
I/DEBUG   (   80):          41820db0  42b241d0
I/DEBUG   (   80):          41820db4  4017722c  /system/lib/libc.so (__thread_entry+76)
I/DEBUG   (   80):     #02  41820db8  42b241d0
I/DEBUG   (   80):          41820dbc  42c767d0
I/DEBUG   (   80):          41820dc0  41820dd0
I/DEBUG   (   80):          41820dc4  00000000
I/DEBUG   (   80):          41820dc8  00000078
I/DEBUG   (   80):          41820dcc  401773c4  /system/lib/libc.so (pthread_create+244)
I/DEBUG   (   80):
I/DEBUG   (   80): memory near r0:
I/DEBUG   (   80):     42b4c338 00000000 00000000 00000000 00013fff
I/DEBUG   (   80):     42b4c348 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c358 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c368 000d8a6d 42182ed8 00000000 000000fe
I/DEBUG   (   80):     42b4c378 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c388 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c398 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c3a8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c3b8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c3c8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c3d8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c3e8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c3f8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c408 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c418 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b4c428 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near r4:
I/DEBUG   (   80):     42b23fe8 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     42b23ff8 ffffffff ffffffff 00000000 00028ff0
I/DEBUG   (   80):     42b24008 400539f4 400537ac 00000001 00000000
I/DEBUG   (   80):     42b24018 00000000 00000001 400537ac 00000001
I/DEBUG   (   80):     42b24028 00000000 00000000 42957d50 42957b78
I/DEBUG   (   80):     42b24038 42bec4e8 400539a8 00000000 400537ac
I/DEBUG   (   80):     42b24048 00000001 00000000 00000000 400537ac
I/DEBUG   (   80):     42b24058 00000001 00000000 00000000 00000000
I/DEBUG   (   80):     42b24068 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24078 00000000 400539a8 00000000 400537ac
I/DEBUG   (   80):     42b24088 00000001 00000000 00000000 400537ac
I/DEBUG   (   80):     42b24098 00000001 00000000 00000000 00000000
I/DEBUG   (   80):     42b240a8 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b240b8 00000000 400539a8 00000000 400537ac
I/DEBUG   (   80):     42b240c8 00000001 00000000 00000000 400537ac
I/DEBUG   (   80):     42b240d8 00000001 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near r6:
I/DEBUG   (   80):     42b241b0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b241c0 00000000 00000000 00000000 429575f0
I/DEBUG   (   80):     42b241d0 400537bc 42c767d0 0000001e 6d454154
I/DEBUG   (   80):     42b241e0 00000075 00000000 00000000 00000000
I/DEBUG   (   80):     42b241f0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24200 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24210 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24220 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24230 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24240 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24250 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24260 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24270 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24280 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24290 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b242a0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near r7:
I/DEBUG   (   80):     41820d70 00000000 00000000 00000003 df52773d
I/DEBUG   (   80):     41820d80 00000000 42b241d0 42c767d0 40020cc9
I/DEBUG   (   80):     41820d90 41820db0 40020cc9 41819000 42b241d4
I/DEBUG   (   80):     41820da0 401b62ec 40020cdf 41820dd0 40020cc9
I/DEBUG   (   80):     41820db0 42b241d0 4017722c 42b241d0 42c767d0
I/DEBUG   (   80):     41820dc0 41820dd0 00000000 00000078 401773c4
I/DEBUG   (   80):     41820dd0 41820dd0 42c767d0 00000000 00000000
I/DEBUG   (   80):     41820de0 00000000 df52773d 00000000 00000000
I/DEBUG   (   80):     41820df0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e00 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e10 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e20 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e30 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e40 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e50 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41820e60 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near r8:
I/DEBUG   (   80):     40020ca8 68096809 bf041a89 bdf0b007 eadef7f3
I/DEBUG   (   80):     40020cb8 000330be 0002d276 000330d8 00033064
I/DEBUG   (   80):     40020cc8 af02b5d0 b1d44604 1114f8d4 6820b909
I/DEBUG   (   80):     40020cd8 46206881 20004788 010cf884 011cf894
I/DEBUG   (   80):     40020ce8 6860b168 3fcdf1b0 f64fbf1e f6cf61ee
I/DEBUG   (   80):     40020cf8 428861ee 6820d003 46206841 20004788
I/DEBUG   (   80):     40020d08 0000bdd0 af02b5b0 4605b084 461c4824
I/DEBUG   (   80):     40020d18 447868bb 4f00f5b3 68006800 46289003
I/DEBUG   (   80):     40020d28 1114f8c5 bfb84611 4300f44f f7ff4622
I/DEBUG   (   80):     40020d38 2801ff7f 6868d126 aa02a901 ebe0f7f3
I/DEBUG   (   80):     40020d48 4818b9f0 9a014621 f7fc4478 4816fd79
I/DEBUG   (   80):     40020d58 9a024621 f7fc4478 68a8fd73 9002aa02
I/DEBUG   (   80):     40020d68 99016868 ebd2f7f3 f7f3b950 6800eb4c
I/DEBUG   (   80):     40020d78 ebd2f7f3 480d4602 44784621 fd60f7fc
I/DEBUG   (   80):     40020d88 e0022001 f8c52000 49090114 44799a03
I/DEBUG   (   80):     40020d98 68096809 bf041a89 bdb0b004 ea66f7f3
I/DEBUG   (   80):
I/DEBUG   (   80): memory near r9:
I/DEBUG   (   80):     41818fe0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41818ff0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41819000 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819010 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819020 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819030 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819040 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819050 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819060 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819070 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819080 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     41819090 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     418190a0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     418190b0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     418190c0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     418190d0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near sl:
I/DEBUG   (   80):     42b241b4 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b241c4 00000000 00000000 429575f0 400537bc
I/DEBUG   (   80):     42b241d4 42c767d0 0000001e 6d454154 00000075
I/DEBUG   (   80):     42b241e4 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b241f4 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24204 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24214 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24224 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24234 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24244 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24254 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24264 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24274 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24284 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24294 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b242a4 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near fp:
I/DEBUG   (   80):     401b62cc 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b62dc 00000000 00000000 ffffffff 00000000
I/DEBUG   (   80):     401b62ec 00000000 00000001 0001ffff 00000000
I/DEBUG   (   80):     401b62fc 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b630c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b631c 00000000 00000000 4017cb05 4017cb01
I/DEBUG   (   80):     401b632c 4017d4b3 4017d5ed 00000000 00000000
I/DEBUG   (   80):     401b633c 00000000 00000000 4004776d 4019e861
I/DEBUG   (   80):     401b634c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b635c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b636c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b637c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b638c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b639c 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b63ac 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     401b63bc 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near ip:
I/DEBUG   (   80):     42b241b0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b241c0 00000000 00000000 00000000 429575f0
I/DEBUG   (   80):     42b241d0 400537bc 42c767d0 0000001e 6d454154
I/DEBUG   (   80):     42b241e0 00000075 00000000 00000000 00000000
I/DEBUG   (   80):     42b241f0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24200 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24210 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24220 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24230 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24240 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24250 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24260 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24270 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24280 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b24290 00000000 00000000 00000000 00000000
I/DEBUG   (   80):     42b242a0 00000000 00000000 00000000 00000000
I/DEBUG   (   80):
I/DEBUG   (   80): memory near sp:
I/DEBUG   (   80):     41816d20 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d30 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d40 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d50 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d60 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d70 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d80 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816d90 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816da0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816db0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816dc0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816dd0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816de0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816df0 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816e00 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):     41816e10 ffffffff ffffffff ffffffff ffffffff
I/DEBUG   (   80):
I/DEBUG   (   80): code around pc:
I/DEBUG   (   80):     40046374 447876e4 68006800 0c14f847 f7da4630
I/DEBUG   (   80):     40046384 2801fd3a 82e4f040 3020f504 f5002500
I/DEBUG   (   80):     40046394 90097054 3020f504 7052f500 f504900a
I/DEBUG   (   80):     400463a4 f50030a0 900c704c 30a0f504 794df500
I/DEBUG   (   80):     400463b4 70fff649 0a05eba0 eb00a80e f8d40b05
I/DEBUG   (   80):     400463c4 b3b801c4 69c96801 b3984788 f826f7d9
I/DEBUG   (   80):     400463d4 46594620 f7ff4652 4680fcc1 0f01f1b8
I/DEBUG   (   80):     400463e4 990cdb1c 0000f8d9 38016809 45401a40
I/DEBUG   (   80):     400463f4 f8d4dd11 b17001c4 69c96801 b1504788
I/DEBUG   (   80):     40046404 0108eb0b 0208ebaa f7ff4620 2800fca7
I/DEBUG   (   80):     40046414 4480bfc8 f1b8dce5 da160f01 0f00f1b8
I/DEBUG   (   80):     40046424 828df040 db0e2d01 0134f894 0f06f010
I/DEBUG   (   80):     40046434 e01bd003 f7d92032 4630f82d fcdbf7da
I/DEBUG   (   80):     40046444 d1bc2800 200ae284 4445e7f5 0800f04f
I/DEBUG   (   80):     40046454 46282d02 db10900b 0b38f10d f04f2000
I/DEBUG   (   80):     40046464 f04f0a01 25000c00 e0ac9008 4620a90e
I/DEBUG   (   80):
I/DEBUG   (   80): code around lr:
I/DEBUG   (   80):     40046364 f5adaf03 b0914d20 f8df4604 f5040604
I/DEBUG   (   80):     40046374 447876e4 68006800 0c14f847 f7da4630
I/DEBUG   (   80):     40046384 2801fd3a 82e4f040 3020f504 f5002500
I/DEBUG   (   80):     40046394 90097054 3020f504 7052f500 f504900a
I/DEBUG   (   80):     400463a4 f50030a0 900c704c 30a0f504 794df500
I/DEBUG   (   80):     400463b4 70fff649 0a05eba0 eb00a80e f8d40b05
I/DEBUG   (   80):     400463c4 b3b801c4 69c96801 b3984788 f826f7d9
I/DEBUG   (   80):     400463d4 46594620 f7ff4652 4680fcc1 0f01f1b8
I/DEBUG   (   80):     400463e4 990cdb1c 0000f8d9 38016809 45401a40
I/DEBUG   (   80):     400463f4 f8d4dd11 b17001c4 69c96801 b1504788
I/DEBUG   (   80):     40046404 0108eb0b 0208ebaa f7ff4620 2800fca7
I/DEBUG   (   80):     40046414 4480bfc8 f1b8dce5 da160f01 0f00f1b8
I/DEBUG   (   80):     40046424 828df040 db0e2d01 0134f894 0f06f010
I/DEBUG   (   80):     40046434 e01bd003 f7d92032 4630f82d fcdbf7da
I/DEBUG   (   80):     40046444 d1bc2800 200ae284 4445e7f5 0800f04f
I/DEBUG   (   80):     40046454 46282d02 db10900b 0b38f10d f04f2000
I/DEBUG   (   80):
I/DEBUG   (   80): memory map around fault addr 41816d64:
I/DEBUG   (   80):     41811000-41812000 rw-
I/DEBUG   (   80):     (no map for address)
I/DEBUG   (   80):     41819000-4181a000 ---
I/BootReceiver(  376): Copying /data/tombstones/tombstone_04 to DropBox (SYSTEM_TOMBSTONE)
D/dalvikvm(  376): GC_CONCURRENT freed 330K, 9% free 6452K/7088K, paused 2ms+2ms, total 29ms

编辑:我将所有线程的堆栈大小更改为64k。该应用程序似乎运行了一段时间没有任何崩溃。我不确定这是否是问题,或者现在只是掩盖了实际问题。

我使用过内存占用少且rtos的设备。通常任务很小,最大可达16k的堆栈大小。这个特殊的应用程序非常大,具有较大的函数调用深度。建议的最佳堆栈大小是多少。

根据此链接默认似乎是2Mb https://unix.stackexchange.com/questions/127602/default-stack-size-for-pthreads

0 个答案:

没有答案