Lines Matching refs:unwinder
108 static std::string ErrorMsg(const std::vector<const char*>& function_names, Unwinder* unwinder) { in ErrorMsg() argument
110 for (size_t i = 0; i < unwinder->NumFrames(); i++) { in ErrorMsg()
111 unwind += unwinder->FormatFrame(i) + '\n'; in ErrorMsg()
117 unwinder->LastErrorCodeString() + "\n" + in ErrorMsg()
121 static void VerifyUnwindFrames(Unwinder* unwinder, in VerifyUnwindFrames() argument
123 for (auto& frame : unwinder->frames()) { in VerifyUnwindFrames()
132 ASSERT_TRUE(expected_function_names.empty()) << ErrorMsg(expected_function_names, unwinder); in VerifyUnwindFrames()
135 for (auto& frame : unwinder->frames()) { in VerifyUnwindFrames()
143 static void VerifyUnwind(Unwinder* unwinder, std::vector<const char*> expected_function_names) { in VerifyUnwind() argument
144 unwinder->Unwind(); in VerifyUnwind()
146 VerifyUnwindFrames(unwinder, expected_function_names); in VerifyUnwind()
153 Unwinder unwinder(512, maps, regs, process_memory); in VerifyUnwind() local
154 VerifyUnwind(&unwinder, expected_function_names); in VerifyUnwind()
184 std::unique_ptr<Unwinder> unwinder; in InnerFunction() local
193 unwinder.reset(new Unwinder(512, maps.get(), regs.get(), process_memory)); in InnerFunction()
197 unwinder.reset(unwinder_from_pid); in InnerFunction()
199 VerifyUnwind(unwinder.get(), kFunctionOrder); in InnerFunction()
337 UnwinderFromPid unwinder(512, pid_); in TEST_F() local
338 unwinder.SetRegs(regs.get()); in TEST_F()
340 VerifyUnwind(&unwinder, kFunctionOrder); in TEST_F()
368 UnwinderFromPid unwinder(512, *pid); in RemoteUnwindFromPid() local
369 unwinder.SetRegs(regs.get()); in RemoteUnwindFromPid()
371 VerifyUnwind(&unwinder, kFunctionOrder); in RemoteUnwindFromPid()
462 Unwinder unwinder(512, &maps, regs.get(), process_memory); in TEST_F() local
463 unwinder.Unwind(); in TEST_F()
464 frames[i] = unwinder.NumFrames(); in TEST_F()
486 ThreadUnwinder unwinder(512); in TEST_F() local
487 ASSERT_TRUE(unwinder.Init()); in TEST_F()
488 unwinder.UnwindWithSignal(SIGRTMIN, tid); in TEST_F()
489 VerifyUnwindFrames(&unwinder, kFunctionOrder); in TEST_F()
505 ThreadUnwinder unwinder(512); in TEST_F() local
506 ASSERT_TRUE(unwinder.Init()); in TEST_F()
508 unwinder.UnwindWithSignal(SIGRTMIN, tid, &initial_regs); in TEST_F()
511 ASSERT_TRUE(unwinder.NumFrames() != 0); in TEST_F()
512 auto initial_frame = unwinder.frames()[0]; in TEST_F()
515 VerifyUnwindFrames(&unwinder, kFunctionOrder); in TEST_F()
534 ThreadUnwinder unwinder(512, &maps); in TEST_F() local
535 ASSERT_EQ(&maps, unwinder.GetMaps()); in TEST_F()
536 ASSERT_TRUE(unwinder.Init()); in TEST_F()
537 ASSERT_EQ(&maps, unwinder.GetMaps()); in TEST_F()
538 unwinder.UnwindWithSignal(SIGRTMIN, tid); in TEST_F()
539 VerifyUnwindFrames(&unwinder, kFunctionOrder); in TEST_F()
540 ASSERT_EQ(&maps, unwinder.GetMaps()); in TEST_F()
547 ThreadUnwinder unwinder(512); in TEST_F() local
548 ASSERT_TRUE(unwinder.Init()); in TEST_F()
549 unwinder.UnwindWithSignal(SIGRTMIN, getpid()); in TEST_F()
550 EXPECT_EQ(0U, unwinder.NumFrames()); in TEST_F()
551 EXPECT_EQ(ERROR_UNSUPPORTED, unwinder.LastErrorCode()); in TEST_F()
556 ThreadUnwinder unwinder(512); in TEST_F() local
557 ASSERT_TRUE(unwinder.Init()); in TEST_F()
558 unwinder.UnwindWithSignal(SIGRTMIN, android::base::GetThreadId()); in TEST_F()
559 EXPECT_EQ(0U, unwinder.NumFrames()); in TEST_F()
560 EXPECT_EQ(ERROR_UNSUPPORTED, unwinder.LastErrorCode()); in TEST_F()
567 ThreadUnwinder unwinder(512); in TEST_F() local
568 ASSERT_TRUE(unwinder.Init()); in TEST_F()
569 unwinder.UnwindWithSignal(SIGRTMIN, getpid()); in TEST_F()
570 EXPECT_NE(0U, unwinder.NumFrames()); in TEST_F()
571 EXPECT_NE(ERROR_UNSUPPORTED, unwinder.LastErrorCode()); in TEST_F()
576 static std::thread* CreateUnwindThread(std::atomic_int& tid, ThreadUnwinder& unwinder, in CreateUnwindThread() argument
579 return new std::thread([&tid, &unwinder, &start_unwinding, &unwinders]() { in CreateUnwindThread()
583 ThreadUnwinder thread_unwinder(512, &unwinder); in CreateUnwindThread()
609 ThreadUnwinder unwinder(512); in TEST_F() local
610 ASSERT_TRUE(unwinder.Init()); in TEST_F()
616 threads.push_back(CreateUnwindThread(tid, unwinder, start_unwinding, unwinders)); in TEST_F()
648 ThreadUnwinder unwinder(512); in TEST_F() local
649 ASSERT_TRUE(unwinder.Init()); in TEST_F()
655 unwinder_threads.push_back(CreateUnwindThread(tids[i], unwinder, start_unwinding, unwinders)); in TEST_F()
697 ThreadUnwinder unwinder(512, &maps); in TEST_F() local
698 ASSERT_TRUE(unwinder.Init()); in TEST_F()
704 unwinder_threads.push_back(CreateUnwindThread(tids[i], unwinder, start_unwinding, unwinders)); in TEST_F()