LLDB mainline
DynamicLoaderAcceleratorGDBRemote.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_SOURCE_PLUGINS_DYNAMICLOADER_ACCELERATORGDBREMOTE_DYNAMICLOADERACCELERATORGDBREMOTE_H
10#define LLDB_SOURCE_PLUGINS_DYNAMICLOADER_ACCELERATORGDBREMOTE_DYNAMICLOADERACCELERATORGDBREMOTE_H
11
13
14/// Dynamic loader for accelerator targets whose library changes are reported
15/// by the remote server instead of discovered through a rendezvous breakpoint.
16///
17/// It obtains load and unload information through
18/// \c jAcceleratorPluginGetDynamicLoaderLibraryInfo.
20public:
22
23 static void Initialize();
24 static void Terminate();
25 static llvm::StringRef GetPluginNameStatic() {
26 return "accelerator-gdb-remote";
27 }
28 static llvm::StringRef GetPluginDescriptionStatic();
30 CreateInstance(lldb_private::Process *process, bool force);
31
32 void DidAttach() override;
33 void DidLaunch() override;
34 bool HandleStopReasonDynamicLoader() override;
36 bool stop_others) override;
38
39 llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
40
41private:
42 /// Returns true if the server answered the packet.
43 bool LoadModulesFromGDBServer(bool full);
44};
45
46#endif // LLDB_SOURCE_PLUGINS_DYNAMICLOADER_ACCELERATORGDBREMOTE_DYNAMICLOADERACCELERATORGDBREMOTE_H
void DidLaunch() override
Called after launching a process.
bool HandleStopReasonDynamicLoader() override
Allow the dynamic loader to handle a request to update loaded modules.
void DidAttach() override
Called after attaching a process.
lldb::ThreadPlanSP GetStepThroughTrampolinePlan(lldb_private::Thread &thread, bool stop_others) override
Provides a plan to step through the dynamic loader trampoline for the current state of thread.
DynamicLoaderAcceleratorGDBRemote(lldb_private::Process *process)
bool LoadModulesFromGDBServer(bool full)
Returns true if the server answered the packet.
static lldb_private::DynamicLoader * CreateInstance(lldb_private::Process *process, bool force)
lldb_private::Status CanLoadImage() override
Ask if it is ok to try and load or unload an shared library (image).
A plug-in interface definition class for dynamic loaders.
A plug-in interface definition class for debugging a process.
Definition Process.h:369
An error handling class.
Definition Status.h:118
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP