android crash 追踪方式

在调试android系统的c++库的时候,一种方案是我们使用gdb server方式,这种方式使用起来相对来说还是比较麻烦
现在有一个最简单方式,这种方式是针对有些个应用直接crash打印出一连串的错误
I/DEBUG   ( 1821):          #00  pc 67a79810 sp 6678ca60   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #01  pc 6758936c sp 6678ca88   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #02  pc 67570fec sp 6678cc28   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #03  pc 675744d0 sp 6678cc70   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #04  pc 675749e0 sp 6678cce8   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #05  pc 67574a34 sp 6678cd68   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #06  pc 67558418 sp 6678cd90   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #07  pc 6753e76c sp 6678cde8   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #08  pc 675bbd0c sp 6678ce40   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #09  pc 675bc988 sp 6678d108   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #10  pc 675bb618 sp 6678d160   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #11  pc 675bcb2c sp 6678d428   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #12  pc 6747fad4 sp 6678d478   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #13  pc 6776ca10 sp 6678d4c8   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #14  pc 677797a4 sp 6678d520   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #15  pc 677799b4 sp 6678d618   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #16  pc 67781204 sp 6678d650   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #17  pc 67781904 sp 6678d768   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #18  pc 67781a40 sp 6678d798   /system/lib/libwebcore.so
I/DEBUG   ( 1821):          #19  pc 767cddb4 sp 6678d7d0   /system/lib/libffi.so:ffi_call_O32+292
I/DEBUG   ( 1821):          #20  pc 767ce3bc sp 6678d7e8   /system/lib/libffi.so:ffi_call+128
I/DEBUG   ( 1821):          #21  pc 76894968 sp 6678d820   /system/lib/libdvm.so:dvmPlatformInvoke+384
I/DEBUG   ( 1821):          #22  pc 767cf354 sp 6678d890   /system/lib/libffi.so:ffi_type_sint32+0
I/DEBUG   ( 1821):          #23  pc 00000000 sp 6678d8c8
在一般的情况下我们想到的是,加些打印定位问题所在
细心的童鞋们可能会发现android在编译的时候,会同时生成symbol库,这个库直接就是debug库
我们直接把编译生成的带符号信息的debug放入系统中运行,你会发现如下信息
I/DEBUG   ( 1833):  s4 00000000  s5 66267f08  s6 000004be  s7 00000000
I/DEBUG   ( 1833):  t8 00000000  t9 675539c4  k0 67ee62a8  k1 00000000
I/DEBUG   ( 1833):  gp 67f62870  sp 66267a60  s8 00000001  ra 67062bf8
I/DEBUG   ( 1833):  hi 0000032f  lo 00006bbc bva 00000024 epc 675539fc
I/DEBUG   ( 1833):          #00  pc 675539fc sp 66267a60   /system/lib/libwebcore.so:_ZNK7WebCore7Element12getAttributeERKNS_13QualifiedNameE+56
I/DEBUG   ( 1833):          #01  pc 67062bf8 sp 66267a88   /system/lib/libwebcore.so:_ZN7WebCore20RenderBoxModelObject22paintFillLayerExtendedERKNS_9PaintInfoERKNS_5ColorEPKNS_9FillLayerEiiiiPNS_13InlineFlowBoxEiiNS_17CompositeOperatorEPNS_12RenderObjectE+3528
I/DEBUG   ( 1833):          #02  pc 6704a878 sp 66267c28   /system/lib/libwebcore.so:_ZN7WebCore9RenderBox14paintFillLayerERKNS_9PaintInfoERKNS_5ColorEPKNS_9FillLayerEiiiiNS_17CompositeOperatorEPNS_12RenderObjectE+92
I/DEBUG   ( 1833):          #03  pc 6704dd5c sp 66267c70   /system/lib/libwebcore.so:_ZN7WebCore9RenderBox22paintRootBoxFillLayersERKNS_9PaintInfoE+412
I/DEBUG   ( 1833):          #04  pc 6704e26c sp 66267ce8   /system/lib/libwebcore.so:_ZN7WebCore9RenderBox27paintBoxDecorationsWithSizeERNS_9PaintInfoEiiii+1008
I/DEBUG   ( 1833):          #05  pc 6704e2c0 sp 66267d68   /system/lib/libwebcore.so:_ZN7WebCore9RenderBox19paintBoxDecorationsERNS_9PaintInfoEii+76
I/DEBUG   ( 1833):          #06  pc 67031ca4 sp 66267d90   /system/lib/libwebcore.so:_ZN7WebCore11RenderBlock11paintObjectERNS_9PaintInfoEii+424
I/DEBUG   ( 1833):          #07  pc 67017ff8 sp 66267de8   /system/lib/libwebcore.so:_ZN7WebCore11RenderBlock5paintERNS_9PaintInfoEii+336
I/DEBUG   ( 1833):          #08  pc 67095598 sp 66267e40   /system/lib/libwebcore.so:_ZN7WebCore11RenderLayer10paintLayerEPS0_PNS_15GraphicsContextERKNS_7IntRectEjPNS_12RenderObjectEPN3WTF7HashMapIPNS_24OverlapTestRequestClientES4_NS9_7PtrHashISC_EENS9_10HashTraitsISC_EENSF_IS4_EEEEj+3612
I/DEBUG   ( 1833):          #09  pc 67096214 sp 66268108   /system/lib/libwebcore.so:_ZN7WebCore11RenderLayer9paintListEPN3WTF6VectorIPS0_Lj0EEES3_PNS_15GraphicsContextERKNS_7IntRectEjPNS_12RenderObjectEPNS1_7HashMapIPNS_24OverlapTestRequestClientES8_NS1_7PtrHashISF_EENS1_10HashTraitsISF_EENSI_IS8_EEEEj+144
I/DEBUG   ( 1833):          #10  pc 67094ea4 sp 66268160   /system/lib/libwebcore.so:_ZN7WebCore11RenderLayer10paintLayerEPS0_PNS_15GraphicsContextERKNS_7IntRectEjPNS_12RenderObjectEPN3WTF7HashMapIPNS_24OverlapTestRequestClientES4_NS9_7PtrHashISC_EENS9_10HashTraitsISC_EENSF_IS4_EEEEj+1832
I/DEBUG   ( 1833):          #11  pc 670963b8 sp 66268428   /system/lib/libwebcore.so:_ZN7WebCore11RenderLayer5paintEPNS_15GraphicsContextERKNS_7IntRectEjPNS_12RenderObjectE+104
I/DEBUG   ( 1833):          #12  pc 66f59360 sp 66268478   /system/lib/libwebcore.so:_ZN7WebCore9FrameView13paintContentsEPNS_15GraphicsContextERKNS_7IntRectE+460
I/DEBUG   ( 1833):          #13  pc 6724629c sp 662684c8   /system/lib/libwebcore.so:_ZN7android12WebFrameView4drawEPN7WebCore15GraphicsContextERKNS1_7IntRectE+476
I/DEBUG   ( 1833):          #14  pc 67253030 sp 66268520   /system/lib/libwebcore.so:_ZN7android11WebViewCore14rebuildPictureERK7SkIRect+472
I/DEBUG   ( 1833):          #15  pc 67253240 sp 66268618   /system/lib/libwebcore.so:_ZN7android11WebViewCore17rebuildPictureSetEPNS_10PictureSetE+176
I/DEBUG   ( 1833):          #16  pc 6725aa90 sp 66268650   /system/lib/libwebcore.so:_ZN7android11WebViewCore16recordPictureSetEPNS_10PictureSetE+1124
I/DEBUG   ( 1833):          #17  pc 6725b190 sp 66268768   /system/lib/libwebcore.so:_ZN7android11WebViewCore13recordContentEP8SkRegionP8SkIPoint+176
I/DEBUG   ( 1833):          #18  pc 6725b2cc sp 66268798   /system/lib/libwebcore.so:_ZN7androidL13RecordContentEP7_JNIEnvP8_jobjectS3_S3_+120
I/DEBUG   ( 1833):          #19  pc 762a9db4 sp 662687d0   /system/lib/libffi.so:ffi_call_O32+292
I/DEBUG   ( 1833):          #20  pc 762aa3bc sp 662687e8   /system/lib/libffi.so:ffi_call+128
I/DEBUG   ( 1833):          #21  pc 76370968 sp 66268820   /system/lib/libdvm.so:dvmPlatformInvoke+384
I/DEBUG   ( 1833):          #22  pc 762ab354 sp 66268890   /system/lib/libffi.so:ffi_type_sint32+0
出错的函数直接给打印出来了,是不是很方便阿








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值