Lines Matching defs:request

66 static void wait_for_user_action(const debugger_request_t &request) {
69 snprintf(path, sizeof(path), "/proc/%d/exe", request.pid);
91 request.pid, exe, request.tid);
106 ALOGI("debuggerd resuming process %d", request.pid);
214 ALOGE("invalid crash request of size %d (from pid=%d uid=%d)\n", status, cr.pid, cr.uid);
232 ALOGE("tid %d does not exist in pid %d. ignoring debug request\n",
243 ALOGE("tid %d does not exist. ignoring explicit dump request\n", out_request->tid);
256 static bool should_attach_gdb(debugger_request_t* request) {
257 if (request->action == DEBUGGER_ACTION_CRASH) {
261 return debug_uid >= 0 && request->uid <= (uid_t)debug_uid;
292 static void redirect_to_32(int fd, debugger_request_t* request) {
295 msg.tid = request->tid;
296 msg.action = request->action;
306 ALOGE("Failed to write request to debuggerd32 socket: %s", strerror(errno));
348 debugger_request_t request;
349 memset(&request, 0, sizeof(request));
350 int status = read_request(fd, &request);
353 request.pid, request.uid, request.gid, request.tid);
358 // redirect the request to the 32 bit debuggerd.
359 if (is32bit(request.tid)) {
361 if (request.action == DEBUGGER_ACTION_DUMP_BACKTRACE
362 || request.action == DEBUGGER_ACTION_DUMP_TOMBSTONE) {
363 redirect_to_32(fd, &request);
366 request.action);
373 // At this point, the thread that made the request is blocked in
383 if (ptrace(PTRACE_ATTACH, request.tid, 0, 0)) {
388 bool attach_gdb = should_attach_gdb(&request);
394 if (request.action == DEBUGGER_ACTION_CRASH) {
401 int signal = wait_for_sigstop(request.tid, &total_sleep_time_usec, &detach_failed);
409 if (request.action == DEBUGGER_ACTION_DUMP_TOMBSTONE) {
411 tombstone_path = engrave_tombstone(request.pid, request.tid,
412 signal, request.original_si_code,
413 request.abort_msg_address, true,
415 } else if (request.action == DEBUGGER_ACTION_DUMP_BACKTRACE) {
417 dump_backtrace(fd, -1, request.pid, request.tid, &detach_failed,
421 status = ptrace(PTRACE_CONT, request.tid, 0, 0);
444 kill(request.pid, SIGSTOP);
447 tombstone_path = engrave_tombstone(request.pid, request.tid,
448 signal, request.original_si_code,
449 request.abort_msg_address, !attach_gdb,
460 if (request.action == DEBUGGER_ACTION_DUMP_TOMBSTONE) {
474 kill(request.pid, SIGSTOP);
476 if (ptrace(PTRACE_DETACH, request.tid, 0, 0)) {
477 ALOGE("ptrace detach from %d failed: %s", request.tid, strerror(errno));
484 wait_for_user_action(request);
489 kill(request.pid, SIGCONT);
562 fprintf(stdout, "Sending request to dump task %d.\n", tid);
585 "If tid specified, sends a request to debuggerd to dump that task.\n"