/system/unwinding/libbacktrace/ |
D | ThreadEntry.cpp | 28 ThreadEntry* ThreadEntry::list_ = nullptr; 29 pthread_mutex_t ThreadEntry::list_mutex_ = PTHREAD_MUTEX_INITIALIZER; 33 ThreadEntry::ThreadEntry(pid_t pid, pid_t tid) in ThreadEntry() function in ThreadEntry 36 next_(ThreadEntry::list_), prev_(nullptr) { in ThreadEntry() 43 if (ThreadEntry::list_) { in ThreadEntry() 44 ThreadEntry::list_->prev_ = this; in ThreadEntry() 46 ThreadEntry::list_ = this; in ThreadEntry() 49 ThreadEntry* ThreadEntry::Get(pid_t pid, pid_t tid, bool create) { in Get() 50 pthread_mutex_lock(&ThreadEntry::list_mutex_); in Get() 51 ThreadEntry* entry = list_; in Get() [all …]
|
D | ThreadEntry.h | 24 class ThreadEntry { 26 static ThreadEntry* Get(pid_t pid, pid_t tid, bool create = true); 28 static void Remove(ThreadEntry* entry); 51 ThreadEntry(pid_t pid, pid_t tid); 52 ~ThreadEntry(); 63 ThreadEntry* next_; 64 ThreadEntry* prev_; 67 static ThreadEntry* list_;
|
D | BacktraceCurrent.cpp | 136 ThreadEntry* entry = ThreadEntry::Get(getpid(), android::base::GetThreadId(), false); in SignalHandler() 167 ThreadEntry* entry = ThreadEntry::Get(Pid(), Tid()); in UnwindThread() 177 ThreadEntry::Remove(entry); in UnwindThread() 193 ThreadEntry::Remove(entry); in UnwindThread() 241 ThreadEntry::Remove(entry); in UnwindThread()
|
D | Android.bp | 40 "ThreadEntry.cpp",
|
/system/unwinding/libunwindstack/ |
D | ThreadEntry.cpp | 32 std::mutex ThreadEntry::entries_mutex_; 33 std::map<pid_t, ThreadEntry*> ThreadEntry::entries_; 37 ThreadEntry::ThreadEntry(pid_t tid) : tid_(tid), ref_count_(1), wait_value_(0) { in ThreadEntry() function in unwindstack::ThreadEntry 42 ThreadEntry* ThreadEntry::Get(pid_t tid, bool create) { in Get() 43 ThreadEntry* entry = nullptr; in Get() 49 entry = new ThreadEntry(tid); in Get() 59 void ThreadEntry::Remove(ThreadEntry* entry) { in Remove() 70 ThreadEntry::~ThreadEntry() { in ~ThreadEntry() 77 bool ThreadEntry::Wait(WaitType type) { in Wait() 88 void ThreadEntry::Wake() { in Wake() [all …]
|
D | ThreadEntry.h | 36 class ThreadEntry { 38 static ThreadEntry* Get(pid_t tid, bool create = true); 40 static void Remove(ThreadEntry* entry); 61 ThreadEntry(pid_t tid); 62 ~ThreadEntry(); 73 static std::map<pid_t, ThreadEntry*> entries_;
|
D | ThreadUnwinder.cpp | 49 ThreadEntry* entry = ThreadEntry::Get(android::base::GetThreadId(), false); in SignalHandler() 84 ThreadEntry* ThreadUnwinder::SendSignalToThread(int signal, pid_t tid) { in SendSignalToThread() 88 ThreadEntry* entry = ThreadEntry::Get(tid); in SendSignalToThread() 96 ThreadEntry::Remove(entry); in SendSignalToThread() 111 ThreadEntry::Remove(entry); in SendSignalToThread() 143 ThreadEntry::Remove(entry); in SendSignalToThread() 161 ThreadEntry* entry = SendSignalToThread(signal, tid); in UnwindWithSignal() 179 ThreadEntry::Remove(entry); in UnwindWithSignal()
|
/system/extras/simpleperf/ |
D | thread_tree.h | 77 struct ThreadEntry { struct 105 virtual ThreadEntry* FindThread(int tid) const; 106 ThreadEntry* FindThreadOrNew(int pid, int tid); 117 const MapEntry* FindMap(const ThreadEntry* thread, uint64_t ip, bool in_kernel); 119 const MapEntry* FindMap(const ThreadEntry* thread, uint64_t ip); 143 ThreadEntry* CreateThread(int pid, int tid); 153 void AddThreadMapsForDsoSymbols(ThreadEntry* thread, Dso* dso); 155 std::unordered_map<int, std::unique_ptr<ThreadEntry>> thread_tree_;
|
D | thread_tree.cpp | 45 ThreadEntry* thread = FindThreadOrNew(pid, tid); in SetThreadName() 53 ThreadEntry* parent = FindThreadOrNew(ppid, ptid); in ForkThread() 54 ThreadEntry* child = FindThreadOrNew(pid, tid); in ForkThread() 69 ThreadEntry* ThreadTree::FindThread(int tid) const { in FindThread() 76 ThreadEntry* ThreadTree::FindThreadOrNew(int pid, int tid) { in FindThreadOrNew() 87 ThreadEntry* ThreadTree::CreateThread(int pid, int tid) { in CreateThread() 95 ThreadEntry* process = FindThreadOrNew(pid, pid); in CreateThread() 99 ThreadEntry* thread = new ThreadEntry{ in CreateThread() 105 auto pair = thread_tree_.insert(std::make_pair(tid, std::unique_ptr<ThreadEntry>(thread))); in CreateThread() 160 ThreadEntry* thread = FindThreadOrNew(pid, tid); in AddThreadMap() [all …]
|
D | OfflineUnwinder.h | 27 struct ThreadEntry; 63 virtual bool UnwindCallChain(const ThreadEntry& thread, const RegSet& regs, const char* stack,
|
D | sample_tree_test.cpp | 66 const ThreadEntry* thread = thread_tree_->FindThreadOrNew(pid, tid); in AddSample() 77 SampleEntry* CreateCallChainSample(const ThreadEntry*, const SampleEntry*, uint64_t, bool, in CreateCallChainSample() argument 81 const ThreadEntry* GetThreadOfSample(SampleEntry*) override { return nullptr; } in GetThreadOfSample()
|
D | thread_tree_test.cpp | 39 ThreadEntry* thread = thread_tree_.FindThreadOrNew(0, 0); in CheckMaps() 110 ThreadEntry* thread = thread_tree_.FindThreadOrNew(0, 0); in TEST_F()
|
D | OfflineUnwinder_impl.h | 41 bool UnwindCallChain(const ThreadEntry& thread, const RegSet& regs, const char* stack,
|
D | RecordFilter.cpp | 112 if (ThreadEntry* process = thread_tree_.FindThread(r->tid_data.pid); process != nullptr) { in CheckCondition() 119 if (ThreadEntry* thread = thread_tree_.FindThread(r->tid_data.tid); thread != nullptr) { in CheckCondition()
|
D | cmd_debug_unwind.cpp | 276 ThreadEntry* thread = thread_tree_.FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in UnwindRecord() 277 ThreadEntry thread_with_new_maps = CreateThreadWithUpdatedMaps(*thread); in UnwindRecord() 308 ThreadEntry CreateThreadWithUpdatedMaps(const ThreadEntry& thread) { in CreateThreadWithUpdatedMaps() 309 ThreadEntry new_thread = thread; in CreateThreadWithUpdatedMaps() 387 ThreadEntry* thread = thread_tree_.FindThread(r.tid_data.tid); in WriteMapsForSample() 524 ThreadEntry* thread = thread_tree_.FindThreadOrNew(sr.tid_data.pid, sr.tid_data.tid); in ReportUnwindingResult()
|
D | report_utils.h | 60 std::vector<CallChainReportEntry> Build(const ThreadEntry* thread,
|
D | sample_tree.h | 104 const ThreadEntry* thread = GetThreadOfSample(sample); in ProcessSampleRecord() 187 virtual EntryT* CreateCallChainSample(const ThreadEntry* thread, const EntryT* sample, 191 virtual const ThreadEntry* GetThreadOfSample(EntryT*) = 0;
|
D | cmd_report.cpp | 82 int cpu, const ThreadEntry* thread, const MapEntry* map, const Symbol* symbol, in SampleEntry() 167 const ThreadEntry* thread = thread_tree_->FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in CreateSample() 178 const ThreadEntry* thread = thread_tree_->FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in CreateBranchSample() 195 SampleEntry* CreateCallChainSample(const ThreadEntry* thread, const SampleEntry* sample, in CreateCallChainSample() 213 const ThreadEntry* GetThreadOfSample(SampleEntry* sample) override { in GetThreadOfSample()
|
D | cmd_monitor.cpp | 565 ThreadEntry* thread = thread_tree_.FindThreadOrNew(pid, tid); in GetSymbolInfo() 602 ThreadEntry* thread = thread_tree_.FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in UnwindRecord()
|
D | cmd_inject.cpp | 88 ThreadEntry* FindThread(int tid) const override { in FindThread() 89 ThreadEntry* thread = ThreadTree::FindThread(tid); in FindThread()
|
D | report_utils.cpp | 90 std::vector<CallChainReportEntry> CallChainReportBuilder::Build(const ThreadEntry* thread, in Build()
|
D | cmd_kmem.cpp | 203 SlabSample* CreateCallChainSample(const ThreadEntry*, const SlabSample* sample, uint64_t ip, in CreateCallChainSample() argument 216 const ThreadEntry* GetThreadOfSample(SlabSample*) override { return nullptr; } in GetThreadOfSample()
|
D | OfflineUnwinder.cpp | 242 bool OfflineUnwinderImpl::UnwindCallChain(const ThreadEntry& thread, const RegSet& regs, in UnwindCallChain()
|
/system/extras/simpleperf/nonlinux_support/ |
D | nonlinux_support.cpp | 50 bool UnwindCallChain(const ThreadEntry&, const RegSet&, const char*, size_t, in UnwindCallChain() argument
|
/system/unwinding/libunwindstack/include/unwindstack/ |
D | Unwinder.h | 40 class ThreadEntry; variable 209 ThreadEntry* SendSignalToThread(int signal, pid_t tid);
|