1.11 Native Debugger
Native Debugger实现
sigaction()
注册捕捉signal(SIGABRT[调用abort函数发的信号], SIGBUS[非法地址, 内存地址对齐出错], SIGFPE[算数错误], SIGILL[非法指令], SIGPIPE[管道破裂], SIGSEGV[访问未分配内存])- 通过socket发送请求, 让debugger服务端调用系统调用
ptrace(PTRACE_ATTACH, request_tid, 0, 0)
, Attach到目标进程, 获取寄存器等相关信息 - 调用
backtrace_map()
获取目标进程的堆栈 activity_manager_connect()
告诉AMS 有crashperform_dump()
执行dump操作 ->engrave_tombstone()
ptrace(PTRACE_DETACH, request.tid, 0, 0)
detach目标进程- ps: debuggerd -b [pid], 可输出Native进程的调用栈