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进程的调用栈