TOMESTONE

像TOMESTONE这样的问题都是发生了段错误所引发的,如


pid: 254, tid: 277  >>> system_server <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
 eax 00000000  ebx b7705680  ecx 00001000  edx b7706f64
 esi b6e73000  edi a92e7d6c
 xcs 00000073  xds 0000007b  xes 0000007b  xfs 00000000 xss 0000007b
 eip b76a3ef3  ebp a92e7d88  esp a92e7d40  flags 00010282
    #00  eip: 00036ef3  /system/lib/libc.so (abort+0x83)
    #01  eip: 0000f126  /system/lib/libc.so
    #02  eip: 0001190f  /system/lib/libc.so (tmalloc_large.clone.7+0x5af)
    #03  eip: 00013197  /system/lib/libc.so (dlmalloc+0x307)
    #04  eip: 00014f42  /system/lib/libc.so (malloc+0x22)
    #05  eip: 0003f024  /system/lib/libc.so (__smakebuf+0x64)
    #06  eip: 0003f928  /system/lib/libc.so (__srefill+0x188)
    #07  eip: 0003cd58  /system/lib/libc.so (fgets+0xa8)


注意这是个system_server的问题,全部都是些在本地的调用,但是在开始的堆栈中,libc.so中,这个是GOOGLE写好的C库,这个是为了在手机的特意改写的标准C库,一般都不会有什么问题,根据地址,可以猜想是传进来的fp发生了问题,于是我就写个tomestone_test在/r3/bionic/linker下,这个是我测试的代码:

#include"linker.h"

int main(void)
{
        debugger_init();

        int *p=0;
        *p = 0;
        return 0;
}
修改了一下Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
        debugger.c

LOCAL_MODULE:= tomestone_test
LOCAL_MODULE_TAGS := optional

include $(BUILD_EXECUTABLE)

再注释掉一点函数就可以了。就可以编译通过了。

感觉听不错的,这样能自己改改代码了,但是今天却有点不高兴,算了,不想说了,先走了。都是些坑爹的。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值