ndk-stack
来源:互联网 发布:2018年四川省大数据 编辑:程序博客网 时间:2024/05/17 02:07
http://blog.sina.com.cn/s/blog_61f4999d01010x9l.html
程序崩溃无疑是程序员最头疼的事情,而android native程序崩溃简直是令程序员崩溃。Android java程序在异常之前还打印出代码调用栈,让程序员有迹可寻,结合单步调试,定位问题相对容易些。而native程序崩溃,只会打印出一段天书,让人摸不着头脑。比如,下面就是一段native程序异常后,在logcat中打印出的信息:
09-01 07:20:39.170: INFO/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-01 07:20:39.170: INFO/DEBUG(31): Build fingerprint: ‘generic/sdk/generic:2.3.3/GRI34/101070:eng/test-keys’
09-01 07:20:39.180: INFO/DEBUG(31): pid: 339, tid: 347
09-01 07:20:39.180: INFO/DEBUG(31): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr bbadbeef
09-01 07:20:39.180: INFO/DEBUG(31):
09-01 07:20:39.180: INFO/DEBUG(31):
09-01 07:20:39.180: INFO/DEBUG(31):
09-01 07:20:39.180: INFO/DEBUG(31):
09-01 07:20:39.270: INFO/ActivityManager(61): Displayed mogoweb.browser.app/.BrowserActivity: +1s98ms
09-01 07:20:39.669: INFO/DEBUG(31):
09-01 07:20:39.669: INFO/DEBUG(31):
09-01 07:20:39.669: INFO/DEBUG(31): code around pc:
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ed0 e08f3003 e1a02003 e59f3038 e08f3003
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ee0 eb2a28bf eb2a290b e59f302c e3a02000
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ef0 e5832000 e3a03000 e12fff33 e51b3008
09-01 07:20:39.669: INFO/DEBUG(31): 822d6f00 e1a00003 e24bd004 e8bd8800 0173faf0
09-01 07:20:39.669: INFO/DEBUG(31): 822d6f10 00cea68c 00cec48c 00cea6c0 bbadbeef
09-01 07:20:39.669: INFO/DEBUG(31): code around lr:
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ec8 e3a01040 e59f3040 e08f3003 e1a02003
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ed8 e59f3038 e08f3003 eb2a28bf eb2a290b
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ee8 e59f302c e3a02000 e5832000 e3a03000
09-01 07:20:39.669: INFO/DEBUG(31): 822d6ef8 e12fff33 e51b3008 e1a00003 e24bd004
09-01 07:20:39.679: INFO/DEBUG(31): 822d6f08 e8bd8800 0173faf0 00cea68c 00cec48c
09-01 07:20:39.679: INFO/DEBUG(31): stack:
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.679: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31): #00 43fcda28
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):
09-01 07:20:39.690: INFO/DEBUG(31):