android native开发 错误信息定位:Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 4785 (XXX)

在进行Android底层C/C++开发时,遇到错误日志难以定位具体代码的问题。通过使用addr2line工具,可以根据logcat提供的堆栈信息将内存地址转换为源代码行数,从而快速定位错误发生位置。例如,输入'addr2line -e out/target/product/hammerhead/symbols/system/lib/libhostplay.so 00001ffa',即可得到出错文件及行号。
摘要由CSDN通过智能技术生成

最近开始做android底层开发,经常遇到C/C++代码报错,logcat只给出一大串堆栈信息,而无法定位到具体代码段,后来网上搜寻发现可以使用addr2line工具根据出错地址映射到出错行,例如:


11-02 20:01:53.009: A/libc(4785): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 4785 (le.audiosynergy)
11-02 20:01:53.109: I/DEBUG(3387): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-02 20:01:53.109: I/DEBUG(3387): Build fingerprint: 'Android/aosp_hammerhead/hammerhead:4.4/KRT16M/eng.vaylb.20140708.131800:userdebug/test-keys'
11-02 20:01:53.109: I/DEBUG(3387): Revision: '11'
11-02 20:01:53.109: I/DEBUG(3387): pid: 4785, tid: 4785, name: le.audiosynergy  >>> com.example.audiosynergy <<<
11-02 20:01:53.109: I/DEBUG(3387): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
11-02 20:01:53.189: I/DEBUG(3387):     r0 0000003a  r1 893c830d  r2 893c830d  r3 893c830d
11-02 20:01:53.189: I/DEBUG(3387):     r4 00000000  r5 41534460  r6 00000004  r7 6d49edcc
11-02 20:01:53.189: I/DEBUG(3387):     r8 be9a0508  r9 6d49edc4  sl 41534470  fp be9a051c
11-02 20:01:53.189: I/DEBUG(3387):     ip 00000003  sp be9a04e8  lr 74f4dffb  pc 74f4dffa  cpsr 600f0030
11-02 20:01:53.189: I/DEBUG(3387):     d0  725f706f6f4c6461  d1  6f725074736f483e
11-02 20:01:53.189: I/DEBUG(3387):     d2  6572685473736563  d3  657268743a3a6461
11-02 20:01:53.189: I/DEBUG(3387):     d4  0063006900680070  d5  0066006600750042
11-02 20:01:53.189: I/DEBUG(3387):     d6  0072005000720065  d7  006300750064006f
11-02 20:01:53.189: I/DEBUG(3387):     d8  0000000000000000  d9  0000000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d10 0000000000000000  d11 0000000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d12 0000000000000000  d13 0000000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d14 0000000000000000  d15 0000000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d16 000000c360a3dfef  d17 0100010001000100
11-02 20:01:53.189: I/DEBUG(3387):     d18 ff00f000f000f000  d19 ff00f000f000f000
11-02 20:01:53.189: I/DEBUG(3387):     d20 fff0f0f0fff0f0f0  d21 c064400000000000
11-02 20:01:53.189: I/DEBUG(3387):     d22 fe01ef10ef10ef10  d23 fe01ef10ef10ef10
11-02 20:01:53.189: I/DEBUG(3387):     d24 fff0f0f0fff0f0f0  d25 0000000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d26 0707070703030303  d27 0000000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d28 0100000001000000  d29 402e000000000000
11-02 20:01:53.189: I/DEBUG(3387):     d30 0215000002130000  d31 0219000002170000
11-02 20:01:53.189: I/DEBUG(3387):     scr 20000010
11-02 20:01:53.189: I/DEBUG(3387): backtrace:
11-02 20:01:53.189: I/DEBUG(3387):     <span style="color:#ff0000;">#00  pc 00001ffa  /system/lib/libhostplay.so (android::HostPlay::HostProcessThread::threadLoop_run()+17)
11-02 20:01:53.189: I/DEBUG(3387):     #01  pc 00002083  /system/lib/libhostplay.so (android::HostPlay::start_Synergy_l()+6)
11-02 20:01:53.189: I/DEBUG(3387):     #02  pc 00000c0d  /system/lib/libaudio_synergy.so (setstartflag_jni(_JNIEnv*, _jobject*, int)+16)</span>
11-02 20:01:53.189: I/DEBUG(3387):     #03  pc 0001dbcc  /system/lib/libdvm.so (dvmPlatformInvoke+112)
11-02 20:01:53.189: I/DEBUG(3387):     #04  pc 0004e123  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
11-02 20:01:53.189: I/DEBUG(3387):     #05  pc 00026fe0  /system/lib/libdvm.so
11-02 20:01:53.189: I/DEBUG(3387):     #06  pc 0002dfa0  /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
11-02 20:01:53.189: I/DEBUG(3387):     #07  pc 0002b638  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
11-02 20:01:53.189: I/DEBUG(3387):     #08  pc 00060865  /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+392)
11-02 20:01:53.189: I/DEBUG(3387):     #09  pc 000687c7  /system/lib/libdvm.so
11-02 20:01:53.189: I/DEBUG(3387):     #10  pc 00026fe0  /system/lib/libdvm.so
11-02 20:01:53.189: I/DEBUG(3387):     #11  pc 0002dfa0  /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
11-02 20:01:53.189: I/DEBUG(3387):     #12  pc 0002b638  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
11-02 20:01:53.189: I/DEBUG(3387):     #13  pc 00060581  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
11-02 20:01:53.189: I/DEBUG(3387):     #14  pc 00049d0b  /system/lib/libdvm.so
11-02 20:01:53.189: I/DEBUG(3387):     #15  pc 0004ce37  /system/lib/libandroid_runtime.so
11-02 20:01:53.189: I/DEBUG(3387):     #16  pc 0004db5b  /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+354)
11-02 20:01:53.189: I/DEBUG(3387):     #17  pc 0000105b  /system/bin/app_process
11-02 20:01:53.189: I/DEBUG(3387):     #18  pc 0000e34b  /system/lib/libc.so (__lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值