/system/extras/simpleperf/ |
D | CallChainJoiner.cpp | 45 void LRUCache::AddCallChain(pid_t tid, std::vector<uint64_t>& ips, std::vector<uint64_t>& sps) { in AddCallChain() argument 48 for (size_t i = 0; i < ips.size(); ++i) { in AddCallChain() 49 CacheNode* node = GetNode(tid, ips[i], sps[i]); in AddCallChain() 68 std::vector<uint64_t> origin_ip = ips; in AddCallChain() 91 ips.resize(chain.size()); in AddCallChain() 96 ips.push_back(top->ip); in AddCallChain() 178 const std::vector<uint64_t>& ips, in WriteCallChain() argument 196 MoveToBinaryFormat(ips.data(), ip_count, p); in WriteCallChain() 207 std::vector<uint64_t>& ips, std::vector<uint64_t>& sps) { in ReadCallChain() argument 225 ips.resize(ip_count); in ReadCallChain() [all …]
|
D | CallChainJoiner_test.cpp | 182 std::vector<uint64_t> ips; in TEST_F() local 186 ASSERT_TRUE(joiner.GetNextCallChain(pid, tid, type, ips, sps)); in TEST_F() 191 ASSERT_EQ(ips, std::vector<uint64_t>({1, 2, 3})); in TEST_F() 195 ASSERT_EQ(ips, std::vector<uint64_t>({1, 2, 3, 4, 5})); in TEST_F() 200 ASSERT_TRUE(joiner.GetNextCallChain(pid, tid, type, ips, sps)); in TEST_F() 205 ASSERT_EQ(ips, std::vector<uint64_t>({3, 4, 5})); in TEST_F() 209 ASSERT_TRUE(joiner.GetNextCallChain(pid, tid, type, ips, sps)); in TEST_F() 214 ASSERT_EQ(ips, std::vector<uint64_t>({1, 4})); in TEST_F() 218 ASSERT_EQ(ips, std::vector<uint64_t>({1, 4, 5})); in TEST_F() 223 ASSERT_FALSE(joiner.GetNextCallChain(pid, tid, type, ips, sps)); in TEST_F() [all …]
|
D | record.cpp | 461 callchain_data.ips = reinterpret_cast<uint64_t*>(p); in SampleRecord() 506 const std::vector<uint64_t>& ips, const std::vector<char>& stack, in SampleRecord() argument 522 callchain_data.ip_nr = ips.size(); in SampleRecord() 551 size += sizeof(uint64_t) * (ips.size() + 1); in SampleRecord() 584 callchain_data.ips = reinterpret_cast<uint64_t*>(p); in SampleRecord() 585 MoveToBinaryFormat(ips.data(), ips.size(), p); in SampleRecord() 602 void SampleRecord::ReplaceRegAndStackWithCallChain(const std::vector<uint64_t>& ips) { in ReplaceRegAndStackWithCallChain() argument 603 uint32_t size_added_in_callchain = sizeof(uint64_t) * (ips.size() + 1); in ReplaceRegAndStackWithCallChain() 607 BuildBinaryWithNewCallChain(new_size, ips); in ReplaceRegAndStackWithCallChain() 616 if (callchain_data.ips[i] == PERF_CONTEXT_USER) { in ExcludeKernelCallChain() [all …]
|
D | cmd_debug_unwind.cpp | 108 void CollectHitFileInfo(const SampleRecord& r, const std::vector<uint64_t>& ips); 238 std::vector<uint64_t> ips; in ProcessRecord() local 241 r.GetValidStackSize(), &ips, &sps)) { in ProcessRecord() 259 r.ReplaceRegAndStackWithCallChain(ips); in ProcessRecord() 261 CallChainJoiner::ORIGINAL_OFFLINE, ips, sps)) { in ProcessRecord() 264 CollectHitFileInfo(r, ips); in ProcessRecord() 273 const std::vector<uint64_t>& ips) { in CollectHitFileInfo() argument 275 for (auto ip : ips) { in CollectHitFileInfo() 325 std::vector<uint64_t> ips; in JoinCallChains() local 328 if (!callchain_joiner_.GetNextCallChain(pid, tid, type, ips, sps)) { in JoinCallChains() [all …]
|
D | sample_tree.h | 103 std::vector<uint64_t> ips; in ProcessSampleRecord() local 105 ips.insert(ips.end(), r.callchain_data.ips, in ProcessSampleRecord() 106 r.callchain_data.ips + r.callchain_data.ip_nr); in ProcessSampleRecord() 120 ips.push_back(PERF_CONTEXT_USER); in ProcessSampleRecord() 121 ips.insert(ips.end(), user_ips.begin(), user_ips.end()); in ProcessSampleRecord() 129 for (auto& ip : ips) { in ProcessSampleRecord()
|
D | record_test.cpp | 73 ASSERT_EQ(PERF_CONTEXT_USER, r2.callchain_data.ips[0]); in TEST_F() 74 ASSERT_EQ(2u, r2.callchain_data.ips[1]); in TEST_F() 82 ASSERT_EQ(PERF_CONTEXT_USER, r4.callchain_data.ips[0]); in TEST_F() 83 ASSERT_EQ(PERF_CONTEXT_USER, r4.callchain_data.ips[1]); in TEST_F() 84 ASSERT_EQ(2u, r4.callchain_data.ips[2]); in TEST_F()
|
D | OfflineUnwinder.cpp | 225 std::vector<uint64_t>* ips, std::vector<uint64_t>* sps) { in UnwindCallChain() argument 231 ips->clear(); in UnwindCallChain() 268 last_jit_method_frame = ips->size(); in UnwindCallChain() 270 ips->push_back(frame.pc); in UnwindCallChain() 275 if (last_jit_method_frame != UINT_MAX && last_jit_method_frame + 3 > ips->size()) { in UnwindCallChain() 284 if (ips->empty()) { in UnwindCallChain() 285 ips->push_back(ip_reg_value); in UnwindCallChain() 289 CHECK_EQ((*ips)[0], ip_reg_value); in UnwindCallChain()
|
D | CallChainJoiner.h | 73 void AddCallChain(pid_t tid, std::vector<uint64_t>& ips, std::vector<uint64_t>& sps); 158 bool AddCallChain(pid_t pid, pid_t tid, ChainType type, const std::vector<uint64_t>& ips, 161 bool GetNextCallChain(pid_t& pid, pid_t& tid, ChainType& type, std::vector<uint64_t>& ips,
|
D | cmd_report_sample.cpp | 479 std::vector<uint64_t> ips = r.GetCallChain(&kernel_ip_count); in ProcessSampleRecord() local 481 ips.erase(ips.begin(), ips.begin() + kernel_ip_count); in ProcessSampleRecord() 484 if (ips.empty()) { in ProcessSampleRecord() 488 ips.resize(1); in ProcessSampleRecord() 498 for (size_t i = 0; i < ips.size(); ++i) { in ProcessSampleRecord() 501 if (!GetCallEntry(thread, i < kernel_ip_count, ips[i], omit_unknown_dso, &entry)) { in ProcessSampleRecord()
|
D | record.h | 107 uint64_t* ips; member 401 uint64_t period, const std::vector<uint64_t>& ips, 404 void ReplaceRegAndStackWithCallChain(const std::vector<uint64_t>& ips); 424 void BuildBinaryWithNewCallChain(uint32_t new_size, const std::vector<uint64_t>& ips); 592 uint64_t* ips; member 598 const std::vector<uint64_t>& ips, const std::vector<uint64_t>& sps);
|
D | OfflineUnwinder_impl.h | 42 size_t stack_size, std::vector<uint64_t>* ips,
|
D | OfflineUnwinder.h | 61 size_t stack_size, std::vector<uint64_t>* ips,
|
D | record_equal_test.h | 57 EXPECT_EQ(r1.callchain_data.ips[i], r2.callchain_data.ips[i]); in CheckSampleRecordDataEqual()
|
D | cmd_dumprecord.cpp | 322 if (sr.callchain_data.ips[i] >= PERF_CONTEXT_MAX) { in ProcessSampleRecord() 323 if (sr.callchain_data.ips[i] == PERF_CONTEXT_USER) { in ProcessSampleRecord() 329 GetSymbolInfo(sr.tid_data.pid, sr.tid_data.tid, sr.callchain_data.ips[i], in_kernel); in ProcessSampleRecord() 354 SymbolInfo s = GetSymbolInfo(cr.pid, cr.tid, cr.ips[i], false); in ProcessCallChainRecord()
|
D | report_lib_interface.cpp | 306 std::vector<uint64_t> ips = r.GetCallChain(&kernel_ip_count); in SetCurrentSample() local 313 for (size_t i = 0; i < ips.size(); ++i) { in SetCurrentSample() 314 const MapEntry* map = thread_tree_.FindMap(current_thread_, ips[i], i < kernel_ip_count); in SetCurrentSample() 330 ip_maps.push_back(std::make_pair(ips[i], map)); in SetCurrentSample()
|
D | cmd_record.cpp | 1533 std::vector<uint64_t> ips; in UnwindRecord() local 1536 r.GetValidStackSize(), &ips, &sps)) { in UnwindRecord() 1546 r.GetValidStackSize(), &ips, &sps)) { in UnwindRecord() 1550 r.ReplaceRegAndStackWithCallChain(ips); in UnwindRecord() 1553 CallChainJoiner::ORIGINAL_OFFLINE, ips, sps); in UnwindRecord() 1621 std::vector<uint64_t> ips; in JoinCallChains() local 1623 if (!callchain_joiner_->GetNextCallChain(pid, tid, type, ips, sps)) { in JoinCallChains() 1629 sr.UpdateUserCallChain(ips); in JoinCallChains() 1811 uint64_t ip = r.callchain_data.ips[i]; in CollectHitFileInfo()
|
/system/extras/simpleperf/scripts/ |
D | debug_unwind_reporter.py | 315 ips = [] 339 ips.append(int(m.group(1), 16)) 358 for ip in ips: 366 n = len(ips) 372 record.callchain.append(CallChainNode(ips[j], sps[j], filenames[j], vaddr_in_files[j],
|