Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Process/FreeBSDKernel/ThreadFreeBSDKernel.h
39642 views
//===-- ThreadFreeBSDKernel.h ------------------------------------- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_THREADFREEBSDKERNEL_H9#define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_THREADFREEBSDKERNEL_H1011#include "lldb/Target/Thread.h"1213class ThreadFreeBSDKernel : public lldb_private::Thread {14public:15ThreadFreeBSDKernel(lldb_private::Process &process, lldb::tid_t tid,16lldb::addr_t pcb_addr, std::string thread_name);1718~ThreadFreeBSDKernel() override;1920void RefreshStateAfterStop() override;2122lldb::RegisterContextSP GetRegisterContext() override;2324lldb::RegisterContextSP25CreateRegisterContextForFrame(lldb_private::StackFrame *frame) override;2627const char *GetName() override {28if (m_thread_name.empty())29return nullptr;30return m_thread_name.c_str();31}3233void SetName(const char *name) override {34if (name && name[0])35m_thread_name.assign(name);36else37m_thread_name.clear();38}3940protected:41bool CalculateStopInfo() override;4243private:44std::string m_thread_name;45lldb::RegisterContextSP m_thread_reg_ctx_sp;46lldb::addr_t m_pcb_addr;47};4849#endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_THREADFREEBSDKERNEL_H505152