| /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 | 137 ThreadEntry* entry = ThreadEntry::Get(getpid(), android::base::GetThreadId(), false); in SignalHandler() 168 ThreadEntry* entry = ThreadEntry::Get(Pid(), Tid()); in UnwindThread() 178 ThreadEntry::Remove(entry); in UnwindThread() 194 ThreadEntry::Remove(entry); in UnwindThread() 242 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 | 35 class ThreadEntry { 37 static ThreadEntry* Get(pid_t tid, bool create = true); 39 static void Remove(ThreadEntry* entry); 60 ThreadEntry(pid_t tid); 61 ~ThreadEntry(); 72 static std::map<pid_t, ThreadEntry*> entries_;
|
| D | ThreadUnwinder.cpp | 49 ThreadEntry* entry = ThreadEntry::Get(android::base::GetThreadId(), false); in SignalHandler() 88 ThreadEntry* ThreadUnwinder::SendSignalToThread(int signal, pid_t tid) { in SendSignalToThread() 92 ThreadEntry* entry = ThreadEntry::Get(tid); in SendSignalToThread() 100 ThreadEntry::Remove(entry); in SendSignalToThread() 115 ThreadEntry::Remove(entry); in SendSignalToThread() 147 ThreadEntry::Remove(entry); in SendSignalToThread() 165 ThreadEntry* entry = SendSignalToThread(signal, tid); in UnwindWithSignal() 186 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); 145 ThreadEntry* CreateThread(int pid, int tid); 154 void AddThreadMapsForDsoSymbols(ThreadEntry* thread, Dso* dso); 156 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; 66 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 | 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 | report_utils.h | 60 std::vector<CallChainReportEntry> Build(const ThreadEntry* thread,
|
| D | cmd_report.cpp | 87 int cpu, const ThreadEntry* thread, const MapEntry* map, const Symbol* symbol, in SampleEntry() 178 const ThreadEntry* thread = thread_tree_->FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in CreateSample() 193 const ThreadEntry* thread = thread_tree_->FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in CreateBranchSample() 210 SampleEntry* CreateCallChainSample(const ThreadEntry* thread, const SampleEntry* sample, in CreateCallChainSample() 229 const ThreadEntry* GetThreadOfSample(SampleEntry* sample) override { in GetThreadOfSample()
|
| D | RecordFilter.cpp | 362 if (ThreadEntry* process = thread_tree_.FindThread(r->tid_data.pid); process != nullptr) { in CheckCondition() 369 if (ThreadEntry* thread = thread_tree_.FindThread(r->tid_data.tid); thread != nullptr) { in CheckCondition()
|
| D | cmd_debug_unwind.cpp | 303 ThreadEntry* thread = thread_tree_.FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in UnwindRecord() 402 ThreadEntry* thread = thread_tree_.FindThread(r.tid_data.tid); in WriteMapsForSample() 536 ThreadEntry* thread = thread_tree_.FindThreadOrNew(sr.tid_data.pid, sr.tid_data.tid); in ReportUnwindingResult()
|
| D | cmd_monitor.cpp | 570 ThreadEntry* thread = thread_tree_.FindThreadOrNew(pid, tid); in GetSymbolInfo() 607 ThreadEntry* thread = thread_tree_.FindThreadOrNew(r.tid_data.pid, r.tid_data.tid); in UnwindRecord()
|
| D | report_utils.cpp | 84 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 | 246 bool OfflineUnwinderImpl::UnwindCallChain(const ThreadEntry& thread, const RegSet& regs, in UnwindCallChain()
|
| D | cmd_inject.cpp | 202 ThreadEntry* FindThread(int tid) const override { in FindThread() 203 ThreadEntry* thread = ThreadTree::FindThread(tid); in FindThread()
|
| /system/extras/simpleperf/nonlinux_support/ |
| D | nonlinux_support.cpp | 51 bool UnwindCallChain(const ThreadEntry&, const RegSet&, const char*, size_t, in UnwindCallChain() argument
|
| /system/unwinding/libunwindstack/include/unwindstack/ |
| D | Unwinder.h | 39 class ThreadEntry; variable 195 ThreadEntry* SendSignalToThread(int signal, pid_t tid);
|