/system/extras/simpleperf/scripts/purgatorio/templates/ |
D | main.js | 84 let callchains = graph_source.data.callchain 104 let callchain = callchains[graph_selection[i]].split("<br>") 106 for (let e = 0; e < callchain.length; e ++) { 107 if (callchain[e] != "") { // last entry is apparently always an empty string 108 entry = callchain[e] 132 function should_insert_callchain(callchain, items, filter_index, inverted) { argument 134 if (callchain[0] === items[filter_index[t]]) { 147 function insert_callchain(root, callchain, inverted) { argument 153 for (let e = 0; e < callchain.length; e ++) { 154 let entry = callchain[e].replace(/^\s+|\s+$/g, '') [all …]
|
/system/extras/simpleperf/ |
D | sample_tree.h | 120 std::vector<EntryT*> callchain; in ProcessSampleRecord() local 121 callchain.push_back(sample); in ProcessSampleRecord() 145 CreateCallChainSample(thread, sample, ip, in_kernel, callchain, acc_info); in ProcessSampleRecord() 149 callchain.push_back(callchain_sample); in ProcessSampleRecord() 156 std::reverse(callchain.begin(), callchain.end()); in ProcessSampleRecord() 159 while (callchain.size() >= 2) { in ProcessSampleRecord() 160 EntryT* sample = callchain[0]; in ProcessSampleRecord() 161 callchain.erase(callchain.begin()); in ProcessSampleRecord() 167 InsertCallChainForSample(sample, callchain, acc_info); in ProcessSampleRecord() 189 const std::vector<EntryT*>& callchain, [all …]
|
D | report_utils.cpp | 133 void CallChainReportBuilder::MarkArtFrame(std::vector<CallChainReportEntry>& callchain) { in MarkArtFrame() argument 138 for (size_t i = 0; i < callchain.size(); ++i) { in MarkArtFrame() 139 auto& entry = callchain[i]; in MarkArtFrame() 146 if (!IsArtEntry(callchain[j], &is_jni_trampoline)) { in MarkArtFrame() 149 callchain[j].execution_type = CallChainExecutionType::ART_METHOD; in MarkArtFrame() 165 if (i > 0 && callchain[i - 1].execution_type == CallChainExecutionType::ART_METHOD) { in MarkArtFrame() 166 callchain[i - 1].execution_type = CallChainExecutionType::NATIVE_METHOD; in MarkArtFrame() 171 void CallChainReportBuilder::ConvertJITFrame(std::vector<CallChainReportEntry>& callchain) { in ConvertJITFrame() argument 173 for (size_t i = 0; i < callchain.size();) { in ConvertJITFrame() 174 auto& entry = callchain[i]; in ConvertJITFrame() [all …]
|
D | callchain.h | 51 void AddCallChain(const std::vector<EntryT*>& callchain, uint64_t period, in AddCallChain() 54 NodeT* p = FindMatchingNode(children, callchain[0], is_same_sample); in AddCallChain() 56 std::unique_ptr<NodeT> new_node = AllocateNode(callchain, 0, period, 0); in AddCallChain() 62 size_t match_length = GetMatchingLengthInNode(p, callchain, callchain_pos, is_same_sample); in AddCallChain() 70 if (callchain_pos == callchain.size()) { in AddCallChain() 76 NodeT* np = FindMatchingNode(p->children, callchain[callchain_pos], is_same_sample); in AddCallChain() 82 std::unique_ptr<NodeT> new_node = AllocateNode(callchain, callchain_pos, period, 0); in AddCallChain()
|
D | report_utils.h | 76 void MarkArtFrame(std::vector<CallChainReportEntry>& callchain); 77 void ConvertJITFrame(std::vector<CallChainReportEntry>& callchain); 79 void DeObfuscateJavaMethods(std::vector<CallChainReportEntry>& callchain);
|
D | cmd_report_sample.cpp | 396 const proto::Sample_CallChainEntry& callchain = sample.callchain(i); in DumpProtobufReport() local 397 FprintIndented(report_fp_, 2, "vaddr_in_file: %" PRIx64 "\n", callchain.vaddr_in_file()); in DumpProtobufReport() 398 FprintIndented(report_fp_, 2, "file_id: %u\n", callchain.file_id()); in DumpProtobufReport() 399 int32_t symbol_id = callchain.symbol_id(); in DumpProtobufReport() 406 max_symbol_id_map[callchain.file_id()] = in DumpProtobufReport() 407 std::max(max_symbol_id_map[callchain.file_id()], symbol_id); in DumpProtobufReport() 409 if (callchain.has_execution_type()) { in DumpProtobufReport() 411 ProtoExecutionTypeToString(callchain.execution_type())); in DumpProtobufReport() 590 proto::Sample_CallChainEntry* callchain = sample->add_callchain(); in PrintSampleRecordInProtobuf() local 601 callchain->set_vaddr_in_file(node.vaddr_in_file); in PrintSampleRecordInProtobuf() [all …]
|
D | SampleDisplayer.h | 116 if (sample->callchain.children.empty()) { in operator() 120 if (brief_callgraph_ && sample->callchain.duplicated) { in operator() 127 for (size_t i = 0; i < sample->callchain.children.size(); ++i) { in operator() 128 DisplayCallGraphEntry(fp, 1, prefix, sample->callchain.children[i], in operator() 129 sample->callchain.children_period + sample->GetPeriod(), in operator() 130 (i + 1 == sample->callchain.children.size())); in operator()
|
D | SampleComparator.h | 63 BUILD_COMPARE_VALUE_FUNCTION(CompareCallGraphDuplicated, callchain.duplicated);
|
D | cmd_report_sample.proto | 49 repeated CallChainEntry callchain = 3; field 90 // Unwinding result is provided for samples without a complete callchain, when recorded with
|
D | record.cpp | 1258 MoveFromBinaryFormat(callchain.length, p); in UnwindingResultRecord() 1259 callchain.ips = reinterpret_cast<uint64_t*>(p); in UnwindingResultRecord() 1260 p += callchain.length * sizeof(uint64_t); in UnwindingResultRecord() 1261 callchain.sps = reinterpret_cast<uint64_t*>(p); in UnwindingResultRecord() 1262 p += callchain.length * sizeof(uint64_t); in UnwindingResultRecord() 1340 if (callchain.length > 0) { in DumpData() 1341 PrintIndented(indent, "callchain length=%" PRIu64 ":\n", callchain.length); in DumpData() 1342 for (uint64_t i = 0; i < callchain.length; i++) { in DumpData() 1343 PrintIndented(indent + 1, "ip_%" PRIu64 ": 0x%" PRIx64 "\n", i + 1, callchain.ips[i]); in DumpData() 1344 PrintIndented(indent + 1, "sp_%" PRIu64 ": 0x%" PRIx64 "\n", i + 1, callchain.sps[i]); in DumpData()
|
D | cmd_kmem.cpp | 44 CallChainRoot<SlabSample> callchain; // a callchain tree representing all member 204 bool in_kernel, const std::vector<SlabSample*>& callchain, in CreateCallChainSample() argument 213 callchain); in CreateCallChainSample()
|
D | cmd_debug_unwind.cpp | 539 if (i < unwinding_r.callchain.length) { in ReportUnwindingResult() 540 fprintf(out_fp_, "unwinding_ip_%zu: 0x%" PRIx64 "\n", id, unwinding_r.callchain.ips[i]); in ReportUnwindingResult() 541 fprintf(out_fp_, "unwinding_sp_%zu: 0x%" PRIx64 "\n", id, unwinding_r.callchain.sps[i]); in ReportUnwindingResult()
|
D | cmd_report.cpp | 79 CallChainRoot<SampleEntry> callchain; member 197 const std::vector<SampleEntry*>& callchain, in CreateCallChainSample() argument 210 return InsertCallChainSample(std::move(callchain_sample), callchain); in CreateCallChainSample()
|
/system/extras/simpleperf/scripts/test/ |
D | report_lib_test.py | 58 callchain = self.report_lib.GetCallChainOfCurrentSample() 59 self.assertEqual(callchain.nr, 0) 96 callchain = self.report_lib.GetCallChainOfCurrentSample() 97 for i in range(callchain.nr): 98 if callchain.entries[i].symbol.symbol_name == sleep_function_name: 110 callchain = report_lib.GetCallChainOfCurrentSample() 111 for i in range(callchain.nr): 112 if callchain.entries[i].symbol.symbol_name == 'artMterpAsmInstructionStart': 133 callchain = report_lib.GetCallChainOfCurrentSample() 134 for i in range(callchain.nr): [all …]
|
/system/extras/simpleperf/scripts/inferno/ |
D | data_types.py | 36 def add_callchain(self, callchain, symbol, sample): argument 41 for j in range(callchain.nr): 42 entry = callchain.entries[callchain.nr - j - 1] 72 def add_sample(self, sample, symbol, callchain): argument 74 thread.add_callchain(callchain, symbol, sample)
|
D | inferno.py | 137 callchain = lib.GetCallChainOfCurrentSample() 138 if sample_filter_fn and not sample_filter_fn(sample, symbol, callchain): 140 process.add_sample(sample, symbol, callchain)
|
/system/extras/simpleperf/scripts/ |
D | debug_unwind_reporter.py | 58 self.callchain: List[CallChainNode] = [] 77 if callchain_id == len(self.callchain): 78 self.callchain.append(CallChainNode()) 79 return self.callchain[callchain_id] 89 for node in sample.callchain: 108 return sample.callchain[-1].dso in self.end_dso 116 return sample.callchain[-1].symbol in self.end_symbol 203 symbol_key = (sample.callchain[-1].dso, sample.callchain[-1].symbol)
|
D | report_sample.py | 45 callchain = lib.GetCallChainOfCurrentSample() 53 for i in range(callchain.nr): 54 entry = callchain.entries[i]
|
D | annotate.py | 213 callchain = lib.GetCallChainOfCurrentSample() 214 for i in range(callchain.nr): 215 symbols.append(callchain.entries[i].symbol) 268 callchain = lib.GetCallChainOfCurrentSample() 269 for i in range(callchain.nr): 270 symbols.append(callchain.entries[i].symbol)
|
D | binary_cache_builder.py | 72 callchain = lib.GetCallChainOfCurrentSample() 73 for i in range(callchain.nr): 74 symbols.append(callchain.entries[i].symbol)
|
D | simpleperf_report_lib.py | 356 callchain = self._GetCallChainOfCurrentSampleFunc(self.getInstance()) 357 assert not _is_null(callchain) 358 return callchain[0]
|
D | pprof_proto_generator.py | 305 callchain = self.lib.GetCallChainOfCurrentSample() 317 for i in range(max(0, callchain.nr - self.max_chain_length), callchain.nr): 318 entry = callchain.entries[i]
|
D | report_html.py | 644 callchain = lib.GetCallChainOfCurrentSample() 660 for i in range(callchain.nr): 661 symbol = callchain.entries[i].symbol
|
/system/extras/simpleperf/scripts/purgatorio/ |
D | purgatorio.py | 199 callchain = lib.GetCallChainOfCurrentSample() 220 for i in range(callchain.nr): 221 symbol = callchain.entries[i].symbol # SymbolStruct 232 if i < callchain.nr - 1:
|
/system/extras/simpleperf/doc/ |
D | README.md | 27 - [Fix broken callchain stopped at C functions](#fix-broken-callchain-stopped-at-c-functions) 161 2. Download unstripped native libraries on device, as [here](#fix-broken-callchain-stopped-at-c-fun… 167 a callchain. But the thread stack can be much longer than 64KB. In that case, we can't unwind to 198 ### Fix broken callchain stopped at C functions
|