Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Process/scripted/ScriptedThread.h
39644 views
//===-- ScriptedThread.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_SCRIPTED_THREAD_H9#define LLDB_SOURCE_PLUGINS_SCRIPTED_THREAD_H1011#include <string>1213#include "ScriptedProcess.h"1415#include "Plugins/Process/Utility/RegisterContextMemory.h"16#include "lldb/Interpreter/ScriptInterpreter.h"17#include "lldb/Target//DynamicRegisterInfo.h"18#include "lldb/Target/Thread.h"1920namespace lldb_private {21class ScriptedProcess;22}2324namespace lldb_private {2526class ScriptedThread : public lldb_private::Thread {2728public:29ScriptedThread(ScriptedProcess &process,30lldb::ScriptedThreadInterfaceSP interface_sp, lldb::tid_t tid,31StructuredData::GenericSP script_object_sp = nullptr);3233~ScriptedThread() override;3435static llvm::Expected<std::shared_ptr<ScriptedThread>>36Create(ScriptedProcess &process,37StructuredData::Generic *script_object = nullptr);3839lldb::RegisterContextSP GetRegisterContext() override;4041lldb::RegisterContextSP42CreateRegisterContextForFrame(lldb_private::StackFrame *frame) override;4344bool LoadArtificialStackFrames();4546bool CalculateStopInfo() override;4748const char *GetInfo() override { return nullptr; }4950const char *GetName() override;5152const char *GetQueueName() override;5354void WillResume(lldb::StateType resume_state) override;5556void RefreshStateAfterStop() override;5758void ClearStackFrames() override;5960StructuredData::ObjectSP FetchThreadExtendedInfo() override;6162private:63void CheckInterpreterAndScriptObject() const;64lldb::ScriptedThreadInterfaceSP GetInterface() const;6566ScriptedThread(const ScriptedThread &) = delete;67const ScriptedThread &operator=(const ScriptedThread &) = delete;6869std::shared_ptr<DynamicRegisterInfo> GetDynamicRegisterInfo();7071const ScriptedProcess &m_scripted_process;72lldb::ScriptedThreadInterfaceSP m_scripted_thread_interface_sp = nullptr;73lldb_private::StructuredData::GenericSP m_script_object_sp = nullptr;74std::shared_ptr<DynamicRegisterInfo> m_register_info_sp = nullptr;75};7677} // namespace lldb_private7879#endif // LLDB_SOURCE_PLUGINS_SCRIPTED_THREAD_H808182