这个实例是由于由于本人在netd函数TetherController::startTethering中打印log信息的时候,去地址的时候错误而引起的,其实问题很快发现并解决了,在这里通过log去分析也是希望去学习一下tombstone怎么分析并解决的,由于是第一次做这种分析,欢迎拍砖。
02-17 15:14:06.642 4494 4511 D CommandListener:TetherCmd::runCommand. argc: 16. argv[0]: tether
02-17 15:14:06.642 4494 4511 D CommandListener:[IPV6_TETHER] ----- virtual intCommandListener::TetherCmd::runCommand(SocketClient*, int, char**),argv[1]=start, [2]=192.168.1.10, [3]=192.168.1.254
02-17 15:14:06.642 4494 4511 D TetherController:Starting tethering services mode 0
crash 之前最后的log,看了很多相关stack的信息最后才发现这里才是找到问题的救命稻草,但具体到那一行本人真的没有看出来?哪位大侠能帮忙指点一下!
02-17 15:14:06.642 4494 4511 F libc : Fatal signal11 (SIGSEGV) at0x646e612f (code=1)
这里是11(SEGV),表示段错误,一般为程序指令访问非法地址时产生。
Kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18)SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28)SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40)SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45)SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51)SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56)SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
02-17 15:14:06.642 1584 1584 I DEBUG : handle_crashing_process(8)
02-17 15:14:07.042 1584 1584 I DEBUG : pid: 4494, tid:4511 >>> /system/bin/netd <<<
02-17 15:14:07.052 1584 1584 I DEBUG : thread: netd
02-17 15:14:07.052 1584 1584 I DEBUG : debuggerd:isSystemServerCrash=0, isAPCrash=0
02-17 15:14:07.052 1584 1584 I DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR),fault addr 646e612f
signal 11表示取地址出错
02-17 15:14:07.052 1584 1584 I DEBUG : r0 646e612f r1 408da480 r2 00000003 r3 00000000
02-17 15:14:07.052 1584 1584 I DEBUG : r4 408da47c r5 00000002 r6 00000000 r7 408d99a8
02-17 15:14:07.052 1584 1584 I DEBUG : r8 408d9fec r9 646e612f 10 00000073 fp 408d9a50
02-17 15:14:07.052 1584 1584 I DEBUG : ip ffffffff sp 408d98e0 lr 400aaa9f pc 400a3b24 cpsr 20000010
02-17 15:14:07.052 1584 1584 I DEBUG : d0 2e3836312e323931 d1 6972656835322e31
02-17 15:14:07.052 1584 1584 I DEBUG : d2 697672657320676e d3 65646f6d20736563
02-17 15:14:07.052 1584 1584 I DEBUG : d4 3a3a646d43726568 d5 616d6d6f436e7572
02-17 15:14:07.052 1584 1584 I DEBUG : d6 656b636f5328646e d7 2a746e65696c4374
02-17 15:14:07.052 1584 1584 I DEBUG : d8 0000000000000000 d9 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d10 0000000000000000 d11 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d12 0000000000000000 d13 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d14 0000000000000000 d15 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d16 419e9b3cc7158106 d17 3f50624dd2f1a9fc
02-17 15:14:07.052 1584 1584 I DEBUG : d18 41b6345a6b000000 d19 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d20 0000000000000000 d21 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d22 0000000000000000 d23 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d24 0000000000000000 d25 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d26 0000000000000000 d27 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d28 0000000000000000 d29 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : d30 0000000000000000 d31 0000000000000000
02-17 15:14:07.052 1584 1584 I DEBUG : scr 00000010
02-17 15:14:07.052 1584 1584 I DEBUG :
02-17 15:14:07.072 1584 1584 I DEBUG : #00 pc 00016b24 /system/lib/libc.so(strlen)
02-17 15:14:07.072 1584 1584 I DEBUG : #01 pc 0001da9c /system/lib/libc.so(__vfprintf)
这里只有两个PC相关的stack所以用处不大
02-17 15:14:07.072 1584 1584 I DEBUG :
02-17 15:14:07.072 1584 1584 I DEBUG : code around pc:
02-17 15:14:07.072 1584 1584 I DEBUG : 400a3b04 f7fffd77bd10fcff e24dd008 e2102003 w.........M....
02-17 15:14:07.072 1584 1584 I DEBUG : 400a3b14 f5d0f000f5d0f020 e58d0004 0a00000f .... ...........
02-17 15:14:07.072 1584 1584 I DEBUG : 400a3b24 e5d02000e3520000 12803001 13a02000 . ....R..0.....
02-17 15:14:07.072 1584 1584 I DEBUG : 400a3b34 158d30041a000004 ea00003e e4d31001 .0......>.......
02-17 15:14:07.072 1584 1584 I DEBUG : 400a3b44 e35100000a00003b e58d3004 e59d0004 ..Q.;....0......
02-17 15:14:07.072 1584 1584 I DEBUG :
02-17 15:14:07.072 1584 1584 I DEBUG : code around lr:
02-17 15:14:07.072 1584 1584 I DEBUG : 400aaa7c c010f8cdf908f005 c010f8dd b14846e3 .............FH.
02-17 15:14:07.072 1584 1584 I DEBUG : 400aaa8c 0b00ebc9bfa845e3 e00346e3 f7f94648 .....E...F..HF..
02-17 15:14:07.072 1584 1584I DEBUG : 400aaa9c 4683e838 f50d9c06f04f7eb4 f80e0c00 8..F.....~O.....
02-17 15:14:07.072 1584 1584 I DEBUG : 400aaaac f8cdcc01e15bc018 46d09709 9f0646dc ......[....F.F..
02-17 15:14:07.072 1584 1584 I DEBUG : 400aaabc f0464692e0040610 46d09709 46dc9f06 .FF........F...F
02-17 15:14:07.072 1584 1584 I DEBUG :
02-17 15:14:07.072 1584 1584 I DEBUG : memory map aroundaddr 646e612f:
02-17 15:14:07.072 1584 1584 I DEBUG : 407dc000-408db000
02-17 15:14:07.072 1584 1584 I DEBUG : (no map foraddress)
02-17 15:14:07.072 1584 1584 I DEBUG : b0001000-b0009000/system/bin/linker
02-17 15:14:07.072 1584 1584 I DEBUG :
02-17 15:14:07.072 1584 1584 I DEBUG : stack:
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98a0 408d9fdc
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98a4 408d99fc
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98a8 408da07d
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98ac 400a88cd /system/lib/libc.so
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98b0 408d9fec
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98b4 408d9a0c
02-17 15:14:07.072 1584 1584 I DEBUG : 408d98b8 00000022
02-17 15:14:07.072 1584 1584 I DEBUG :