1

我正在将本机 C++ 库移植到 Android,我得到以下堆栈跟踪:

06-11 14:55:15.505: I/DEBUG(138): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-11 14:55:15.505: I/DEBUG(138): Build fingerprint: 'htc_asia_tw/htc_shooteru/shooteru:2.3.4/GRJ22/123848.4:user/release-keys'
06-11 14:55:15.515: I/DEBUG(138): pid: 5523, tid: 5535  >>> com.xxx <<<
06-11 14:55:15.515: I/DEBUG(138): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0128d1a8
06-11 14:55:15.515: I/DEBUG(138):  r0 0128d1a8  r1 45ba2577  r2 80808080  r3 00000000
06-11 14:55:15.515: I/DEBUG(138):  r4 45ba2ba8  r5 00000005  r6 00000000  r7 45ba24e4
06-11 14:55:15.515: I/DEBUG(138):  r8 45ba270c  r9 0128d1a8  10 00000001  fp 45ba2bac
06-11 14:55:15.515: I/DEBUG(138):  ip 00000073  sp 45ba2478  lr afd1b64b  pc afd151e8  cpsr 60000010
06-11 14:55:15.515: I/DEBUG(138):  d0  65526f666e496533  d1  6143646576656934
06-11 14:55:15.515: I/DEBUG(138):  d2  772f73746e656d34  d3  65636170736b7235
06-11 14:55:15.515: I/DEBUG(138):  d4  617262657a655a2f  d5  2f696e6a2f434f50
06-11 14:55:15.515: I/DEBUG(138):  d6  7262657a655a7451  d7  422f6e69616d2f61
06-11 14:55:15.515: I/DEBUG(138):  d8  0000000000000000  d9  0000000000000000
06-11 14:55:15.515: I/DEBUG(138):  d10 0000000000000000  d11 0000000000000000
06-11 14:55:15.515: I/DEBUG(138):  d12 0000000000000000  d13 0000000000000000
06-11 14:55:15.515: I/DEBUG(138):  d14 0000000000000000  d15 0000000000000000
06-11 14:55:15.515: I/DEBUG(138):  d16 0000000000000000  d17 41d3f57724c00000
06-11 14:55:15.515: I/DEBUG(138):  d18 3ff0000000000000  d19 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  d20 0000000000000000  d21 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  d22 3ff0000000000000  d23 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  d24 3ff0000000000000  d25 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  d26 0000000000000000  d27 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  d28 0000000000000000  d29 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  d30 0000000000000000  d31 0000000000000000
06-11 14:55:15.525: I/DEBUG(138):  scr 20000012
06-11 14:55:15.625: I/DEBUG(138):          #00  pc 000151e8  /system/lib/libc.so
06-11 14:55:15.625: I/DEBUG(138):          #01  pc 0001b648  /system/lib/libc.so
06-11 14:55:15.635: I/DEBUG(138): code around pc:
06-11 14:55:15.635: I/DEBUG(138): afd151c8 0a00003d e58d2004 e59d2004 e3120003 
06-11 14:55:15.635: I/DEBUG(138): afd151d8 1afffff6 e0800003 e3082080 e3482080 
06-11 14:55:15.635: I/DEBUG(138): afd151e8 e4901004 e0433000 f5d0f040 e041c3a2 
06-11 14:55:15.635: I/DEBUG(138): afd151f8 e00cc002 e1dcc001 04901004 1a000022 
06-11 14:55:15.635: I/DEBUG(138): afd15208 e041c3a2 e00cc002 e1dcc001 04901004 
06-11 14:55:15.635: I/DEBUG(138): code around lr:
06-11 14:55:15.635: I/DEBUG(138): afd1b628 b910c014 a018f8dd 9906e00e 0a00ebc9 
06-11 14:55:15.635: I/DEBUG(138): afd1b638 bfa8458a e007468a f8cd4648 f7f9c014 
06-11 14:55:15.635: I/DEBUG(138): afd1b648 f8ddeda0 4682c014 f10d2000 465c0ef8 
06-11 14:55:15.635: I/DEBUG(138): afd1b658 f80e4683 f8cd0c01 e14cb018 46d89709 
06-11 14:55:15.635: I/DEBUG(138): afd1b668 f0469f07 e00c0610 7ff00000 0002040d 
06-11 14:55:15.635: I/DEBUG(138): stack:
06-11 14:55:15.635: I/DEBUG(138):     45ba2438  00000000  
06-11 14:55:15.635: I/DEBUG(138):     45ba243c  00000022  
06-11 14:55:15.635: I/DEBUG(138):     45ba2440  45ba27f7  
06-11 14:55:15.635: I/DEBUG(138):     45ba2444  afd1965f  /system/lib/libc.so
06-11 14:55:15.635: I/DEBUG(138):     45ba2448  45ba270c  
06-11 14:55:15.635: I/DEBUG(138):     45ba244c  45ba253c  
06-11 14:55:15.635: I/DEBUG(138):     45ba2450  00000082  
06-11 14:55:15.635: I/DEBUG(138):     45ba2454  45ba253c  
06-11 14:55:15.635: I/DEBUG(138):     45ba2458  00000004  
06-11 14:55:15.635: I/DEBUG(138):     45ba245c  00000000  
06-11 14:55:15.635: I/DEBUG(138):     45ba2460  45ba24e4  
06-11 14:55:15.635: I/DEBUG(138):     45ba2464  45ba270c  
06-11 14:55:15.645: I/DEBUG(138):     45ba2468  45ba26cd  
06-11 14:55:15.645: I/DEBUG(138):     45ba246c  00000007  
06-11 14:55:15.645: I/DEBUG(138):     45ba2470  df002777  
06-11 14:55:15.645: I/DEBUG(138):     45ba2474  e3a070ad  
06-11 14:55:15.645: I/DEBUG(138): #00 45ba2478  45ba2ba8  
06-11 14:55:15.645: I/DEBUG(138):     45ba247c  afd1c17d  /system/lib/libc.so
06-11 14:55:15.645: I/DEBUG(138): #01 45ba2480  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba2484  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba2488  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba248c  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba2490  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba2494  00000073  
06-11 14:55:15.645: I/DEBUG(138):     45ba2498  ffffffff  
06-11 14:55:15.645: I/DEBUG(138):     45ba249c  45ba24e4  
06-11 14:55:15.645: I/DEBUG(138):     45ba24a0  45ba251c  
06-11 14:55:15.645: I/DEBUG(138):     45ba24a4  80cbce76  /data/data/com.xxx/lib/libxxx.so
06-11 14:55:15.645: I/DEBUG(138):     45ba24a8  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba24ac  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba24b0  00000083  
06-11 14:55:15.645: I/DEBUG(138):     45ba24b4  45ba2577  
06-11 14:55:15.645: I/DEBUG(138):     45ba24b8  80cbce48  /data/data/com.xxx/lib/libxxx.so
06-11 14:55:15.645: I/DEBUG(138):     45ba24bc  afd42428  
06-11 14:55:15.645: I/DEBUG(138):     45ba24c0  00000000  
06-11 14:55:15.645: I/DEBUG(138):     45ba24c4  00000000  

如您所见,我在 libc.so 中只有 2 个堆栈级别。在 addr2line 之后,我知道它是 strlen 和 vprintf。我什至没有到达我的图书馆中它来自的地方。

您如何获得比这更长的堆栈跟踪?

(崩溃可能发生在与调用 JNI 函数的线程不同的线程上 - 我不知道这是否重要)。

4

0 回答 0