In Android development, we also often encounter a segment error, that is, SIGSEGV (11), this time libc BackTrace will print out the corresponding stack information, and you see just a pair of numbers, it seems impossible to find out.
The following is an error from a serial break:
Activitymanager (1105): Displayed activity com.android.browser/. Browseractivity:2460MS (total2460Ms
I/debug (13002): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/debug (13002): Build fingerprint:'Unknown'
I/debug (13002): PID:20363, Tid:20375>>> Com.android.browser <<<
I/debug (13002): Signal One(SIGSEGV), fault addr ffc00000
I/debug (13002): R0 059fc2a0 R1 4a3bcef8 R2 e59fc2a0 R3 4A3BCC58
I/debug (13002): R4 4a3bc101 R5 4ebe0a3c R6 4a3bc120 R7 012FFF10
I/debug (13002): R8 500de101 R9 500ee12dTenA87dfb20 FP 4ebe58e0
I/debug (13002): IP ffc00000 sp 4ebe0a30 lr 4a3bcc58 pc a862f3a0 CPSR00000030
I/debug (13002): D00000001100000011D10000001100000011
I/debug (13002): D20000001100000011D30000001100000011
I/debug (13002): D40000001100000011D50000001100000011
I/debug (13002): D60000001100000011D74060000000000080
I/debug (13002): D8 41d3d1762e40d70a D9 41d3d1762e440a3d
I/debug (13002): D100000000000000000D110000000000000000
I/debug (13002): D120000000000000000D130000000000000000
I/debug (13002): D140000000000000000D150000000000000000
I/debug (13002): D16 3ff0000000000000 D17 3ff0000000000000
I/debug (13002): D18 40cd268000000000 D19 3f3b9cc1b0bac000
I/debug (13002): d20 3ff0000000000000 D218000000000000000
I/debug (13002): D220000000000000000D230000000000000000
I/debug (13002): D24 3ff0000000000000 D250000000000000000
I/debug (13002): D260000000000000000D270000000000000000
I/debug (13002): D280000000000000000D29 3ff0000000000000
I/debug (13002): D300000000000000000D31 3ff0000000000000
I/debug (13002): SCR60000013
I/debug (13002):
I/debug (13002): #xxPC 0032f3a0/system/lib/libwebcore.so
I/debug (13002): # onPC 003243b0/system/lib/libwebcore.so
I/debug (13002): # GenevaPC 003167b2/system/lib/libwebcore.so
I/debug (13002): #GenevaPC 0038f2de/system/lib/libwebcore.so
I/debug (13002): #GenevaPC 0038f416/system/lib/libwebcore.so
I/debug (13002): # toPC 0030d392/system/lib/libwebcore.so
I/debug (13002): # .PC 003796e2/system/lib/libwebcore.so
I/debug (13002): # -PC 0038e36a/system/lib/libwebcore.so
I/debug (13002): # ,PC 003189f0/system/lib/libwebcore.so
I/debug (13002): # thePC 00377f82/system/lib/libwebcore.so
I/debug (13002): #TenPC 0037ae0c/system/lib/libwebcore.so
I/debug (13002): # OnePC 0038e254/system/lib/libwebcore.so
I/debug (13002): # APC 003189f0/system/lib/libwebcore.so
I/debug (13002): # -PC 0031cf2c/system/lib/libwebcore.so
I/debug (13002): # -PC 0038e52a/system/lib/libwebcore.so
I/debug (13002): # thePC 0038c2d0/system/lib/libwebcore.so
I/debug (13002): # -PC 0031cf76/system/lib/libwebcore.so
I/debug (13002): # -PC 0038e546/system/lib/libwebcore.so
I/debug (13002): # -PC 003189f0/system/lib/libwebcore.so
I/debug (13002): # +PC 0031ca40/system/lib/libwebcore.so
I/debug (13002): # -PC 0038e3be/system/lib/libwebcore.so
I/debug (13002): # +PC 0038c2d0/system/lib/libwebcore.so
I/debug (13002): # APC 0031cf76/system/lib/libwebcore.so
I/debug (13002): # atPC 0038e546/system/lib/libwebcore.so
I/debug (13002): # -PC 0038c2d0/system/lib/libwebcore.so
I/debug (13002): # -Pc00379054/system/lib/libwebcore.so
I/debug (13002): # -PC 0031d254/system/lib/libwebcore.so
I/debug (13002): # -PC 0030d5d6/system/lib/libwebcore.so
I/debug (13002): # -PC 0030d7d2/system/lib/libwebcore.so
I/debug (13002): # inPC 0031e354/system/lib/libwebcore.so
I/debug (13002): # -PC 0034ab3c/system/lib/libwebcore.so
I/debug (13002):
I/debug (13002): Code around PC:
I/debug (13002): a862f380 469e4694 cc04f853 0e04f1a3 510cea4f
I/debug (13002): a862f390 f41c0d09 bf080f0044714249C008f8d1
I/debug (13002): a862f3a0 e000f8dc 0c1ff10e bf0842b8 2d04f853
I/debug (13002): a862f3b0 0d010510 0f00f412 4249bf08 f8c2185a
I/debug (13002): a862f3c0 e006c008 d1042b0c 99019b0518426818
I/debug (13002):
I/debug (13002): Code around LR:
I/debug (13002): 4a3bcc38 e58d0000 e49d0004 e598200b e582002f
I/debug (13002): 4a3bcc48 e52d0004 e3100001 0a000018 e3a03030
I/debug (13002): 4a3bcc58 e59fc2a0 e002100c e59fc29c e151000c
I/debug (13002): 4a3bcc68 0a000012 e59fc294 e002100c e0813003
I/debug (13002): 4a3bcc78 e1a03123 e1c2200c e3530b02 ba000004
I/debug (13002):
I/debug (13002): Stack:
I/debug (13002): 4ebe09f0 50bfd848
I/debug (13002): 4ebe09f4 50bfd858
I/debug (13002): 4ebe09f8 50bfd834
I/debug (13002): 4EBE09FC afd19a05/system/lib/libc.so
I/debug (13002): 4ebe0a00 50bd3264
I/debug (13002): 4ebe0a04 a86510ef/system/lib/libwebcore.so
I/debug (13002): 4ebe0a0800000004
I/debug (13002): 4ebe0a0c 50bfd854
I/debug (13002): 4ebe0a10 002ece20 [Heap]
I/debug (13002): 4ebe0a14 4a3ba000
I/debug (13002): 4ebe0a18 4ebe0a3c
I/debug (13002): 4ebe0a1c 4ebe0a3c
I/debug (13002): 4ebe0a20 4a3bc101
I/debug (13002): 4ebe0a24 4ebe0a3c
I/debug (13002): 4ebe0a28 df002777
I/debug (13002): 4ebe0a2c E3A070AD
I/debug (13002): #xx4ebe0a30 002ece20 [Heap]
I/debug (13002): 4ebe0a34 49f627d0
I/debug (13002): 4ebe0a38 a87d63c0/system/lib/libwebcore.so
I/debug (13002): 4ebe0a3c 4a3bd0e7
I/debug (13002): 4ebe0a40 4a3bd0b8
I/debug (13002): 4ebe0a44 4a3bcc58
I/debug (13002): 4ebe0a4800000003
I/debug (13002): 4ebe0a4c00000000
I/debug (13002): 4ebe0a5000001100
I/debug (13002): 4ebe0a54 0000001f
I/debug (13002): 4ebe0a5800001074
I/debug (13002): 4ebe0a5c 4ebe0b04
I/debug (13002): 4ebe0a60 a87d63c0/system/lib/libwebcore.so
I/debug (13002): 4ebe0a64 4EBE0ACC
I/debug (13002): 4ebe0a68 4a3bc101
I/debug (13002): 4ebe0a6c a86243b5/system/lib/libwebcore.so
I/debug (13002): # on4ebe0a70 4ebe0b38
I/debug (13002): 4ebe0a7400000064
I/debug (13002): 4ebe0a78 003f0914 [Heap]
I/debug (13002): 4ebe0a7c fffffc00
I/debug (13002): 4ebe0a80 50bfd834
I/debug (13002): 4ebe0a84 a87d63c0/system/lib/libwebcore.so
I/debug (13002): 4ebe0a88 4ebe0b38
I/debug (13002): 4ebe0a8c 4ebe0b04
I/debug (13002): 4ebe0a90 4EBE0ACCCopy Code
I/debug (13002): 4ebe0a94 a86167b7/system/lib/libwebcore.so
Lib on our board is often strip, without symbolic information. However, we can obtain the corresponding symbolic information by compiling the library generated at the time. The compiler also provides us with the corresponding tool: Addr2line full name: Arm-eabi-addr2line, can be found in the corresponding board source directory.
Through the above fault analysis, located in the system/lib/libwebcore.so this library has a break error, you can pull down the line analysis. Command: arm-eabi-addr2line-f-e ~/desktop/libwebcore.so 0038f2de
This method of analysis also applies to libraries developed using JNI.
Reprint http://terryblog.blog.51cto.com/1764499/796583