| //===-- memprof_descriptions.h ---------------------------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file is a part of MemProfiler, a memory profiler. |
| // |
| // MemProf-private header for memprof_descriptions.cpp. |
| //===----------------------------------------------------------------------===// |
| #ifndef MEMPROF_DESCRIPTIONS_H |
| #define MEMPROF_DESCRIPTIONS_H |
| |
| #include "memprof_allocator.h" |
| #include "memprof_thread.h" |
| #include "sanitizer_common/sanitizer_common.h" |
| #include "sanitizer_common/sanitizer_report_decorator.h" |
| |
| namespace __memprof { |
| |
| void DescribeThread(MemprofThreadContext *context); |
| inline void DescribeThread(MemprofThread *t) { |
| if (t) |
| DescribeThread(t->context()); |
| } |
| |
| class MemprofThreadIdAndName { |
| public: |
| explicit MemprofThreadIdAndName(MemprofThreadContext *t); |
| explicit MemprofThreadIdAndName(u32 tid); |
| |
| // Contains "T%tid (%name)" or "T%tid" if the name is empty. |
| const char *c_str() const { return &name[0]; } |
| |
| private: |
| void Init(u32 tid, const char *tname); |
| |
| char name[128]; |
| }; |
| |
| } // namespace __memprof |
| |
| #endif // MEMPROF_DESCRIPTIONS_H |