Lines Matching defs:pid
106 void WaitForStop(pid_t pid) {
110 while (ptrace(PTRACE_GETSIGINFO, pid, 0, &si) < 0 && (errno == EINTR || errno == ESRCH)) {
292 void VerifyProcTest(pid_t pid, pid_t tid, bool share_map,
297 ptrace_tid = pid;
312 map.reset(BacktraceMap::Create(pid));
314 std::unique_ptr<Backtrace> backtrace(Backtrace::Create(pid, tid, map.get()));
332 pid_t pid;
333 if ((pid = fork()) == 0) {
337 VerifyProcTest(pid, BACKTRACE_CURRENT_THREAD, false, ReadyLevelBacktrace, VerifyLevelDump);
339 kill(pid, SIGKILL);
341 ASSERT_EQ(waitpid(pid, &status, 0), pid);
345 pid_t pid;
346 if ((pid = fork()) == 0) {
351 VerifyProcTest(pid, BACKTRACE_CURRENT_THREAD, true, ReadyLevelBacktrace, VerifyLevelDump);
353 kill(pid, SIGKILL);
355 ASSERT_EQ(waitpid(pid, &status, 0), pid);
359 pid_t pid;
360 if ((pid = fork()) == 0) {
364 VerifyProcTest(pid, BACKTRACE_CURRENT_THREAD, false, ReadyMaxBacktrace, VerifyMaxDump);
366 kill(pid, SIGKILL);
368 ASSERT_EQ(waitpid(pid, &status, 0), pid);
372 std::unique_ptr<Backtrace> ign1(Backtrace::Create(bt_all->Pid(), BACKTRACE_CURRENT_THREAD));
376 std::unique_ptr<Backtrace> ign2(Backtrace::Create(bt_all->Pid(), BACKTRACE_CURRENT_THREAD));
384 pid_t pid;
385 if ((pid = fork()) == 0) {
389 VerifyProcTest(pid, BACKTRACE_CURRENT_THREAD, false, ReadyLevelBacktrace, VerifyProcessIgnoreFrames);
391 kill(pid, SIGKILL);
393 ASSERT_EQ(waitpid(pid, &status, 0), pid);
402 void GetThreads(pid_t pid, std::vector<pid_t>* threads) {
405 snprintf(task_path, sizeof(task_path), "/proc/%d/task", pid);
421 pid_t pid;
422 if ((pid = fork()) == 0) {
441 GetThreads(pid, &threads);
446 ASSERT_TRUE(ptrace(PTRACE_ATTACH, pid, 0, 0) == 0);
447 WaitForStop(pid);
450 if (pid == *it) {
453 VerifyProcTest(pid, *it, false, ReadyLevelBacktrace, VerifyLevelDump);
455 ASSERT_TRUE(ptrace(PTRACE_DETACH, pid, 0, 0) == 0);
457 kill(pid, SIGKILL);
459 ASSERT_EQ(waitpid(pid, &status, 0), pid);
848 void VerifyMap(pid_t pid) {
850 snprintf(buffer, sizeof(buffer), "/proc/%d/maps", pid);
863 std::unique_ptr<BacktraceMap> map(BacktraceMap::Create(pid));
877 pid_t pid;
879 if ((pid = fork()) == 0) {
884 ASSERT_LT(0, pid);
886 ASSERT_TRUE(ptrace(PTRACE_ATTACH, pid, 0, 0) == 0);
889 WaitForStop(pid);
892 VerifyMap(pid);
894 ASSERT_TRUE(ptrace(PTRACE_DETACH, pid, 0, 0) == 0);
896 kill(pid, SIGKILL);
897 ASSERT_EQ(waitpid(pid, nullptr, 0), pid);
1041 pid_t pid;
1042 if ((pid = fork()) == 0) {
1046 ASSERT_NE(-1, pid);
1051 if (ptrace(PTRACE_ATTACH, pid, 0, 0) == 0) {
1052 WaitForStop(pid);
1054 std::unique_ptr<Backtrace> backtrace(Backtrace::Create(pid, pid));
1074 ASSERT_TRUE(ptrace(PTRACE_DETACH, pid, 0, 0) == 0);
1081 kill(pid, SIGKILL);
1082 ASSERT_EQ(waitpid(pid, nullptr, 0), pid);
1187 pid_t pid;
1188 if ((pid = fork()) == 0) {
1215 ASSERT_TRUE(pid > 0);
1220 ASSERT_TRUE(ptrace(PTRACE_ATTACH, pid, 0, 0) == 0);
1223 WaitForStop(pid);
1225 std::unique_ptr<Backtrace> backtrace(Backtrace::Create(pid, BACKTRACE_CURRENT_THREAD));
1249 ASSERT_TRUE(ptrace(PTRACE_DETACH, pid, 0, 0) == 0);
1257 kill(pid, SIGKILL);
1258 ASSERT_EQ(waitpid(pid, nullptr, 0), pid);
1336 pid_t pid;
1337 if ((pid = fork()) == 0) {
1341 ASSERT_TRUE(pid > 0);
1347 ASSERT_TRUE(ptrace(PTRACE_ATTACH, pid, 0, 0) == 0);
1350 WaitForStop(pid);
1352 std::unique_ptr<Backtrace> backtrace(Backtrace::Create(pid, BACKTRACE_CURRENT_THREAD));
1364 ASSERT_TRUE(ptrace(PTRACE_DETACH, pid, 0, 0) == 0);
1372 kill(pid, SIGKILL);
1373 ASSERT_EQ(waitpid(pid, nullptr, 0), pid);
1383 void CheckForLeak(pid_t pid, pid_t tid) {
1386 Backtrace* backtrace = Backtrace::Create(pid, tid);
1396 Backtrace* backtrace = Backtrace::Create(pid, tid);
1429 pid_t pid;
1431 if ((pid = fork()) == 0) {
1436 ASSERT_LT(0, pid);
1438 ASSERT_TRUE(ptrace(PTRACE_ATTACH, pid, 0, 0) == 0);
1441 WaitForStop(pid);
1443 CheckForLeak(pid, BACKTRACE_CURRENT_THREAD);
1445 ASSERT_TRUE(ptrace(PTRACE_DETACH, pid, 0, 0) == 0);
1447 kill(pid, SIGKILL);
1448 ASSERT_EQ(waitpid(pid, nullptr, 0), pid);