LLDB mainline
OperatingSystem.cpp
Go to the documentation of this file.
1//===-- OperatingSystem.cpp -----------------------------------------------===//
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
11#include "lldb/Target/Thread.h"
12
13using namespace lldb;
14using namespace lldb_private;
15
17 const char *plugin_name) {
18 OperatingSystemCreateInstance create_callback = nullptr;
19 if (plugin_name) {
20 create_callback =
22 plugin_name);
23 if (create_callback) {
24 std::unique_ptr<OperatingSystem> instance_up(
25 create_callback(process, true));
26 if (instance_up)
27 return instance_up.release();
28 }
29 } else {
30 for (uint32_t idx = 0;
31 (create_callback =
33 nullptr;
34 ++idx) {
35 std::unique_ptr<OperatingSystem> instance_up(
36 create_callback(process, false));
37 if (instance_up)
38 return instance_up.release();
39 }
40 }
41 return nullptr;
42}
43
44OperatingSystem::OperatingSystem(Process *process) : m_process(process) {}
45
47 const lldb::ThreadSP &thread_sp) {
48 if (thread_sp)
49 return thread_sp->IsOperatingSystemPluginThread();
50 return false;
51}
A plug-in interface definition class for halted OS helpers.
static OperatingSystem * FindPlugin(Process *process, const char *plugin_name)
Find a halted OS plugin for a given process.
virtual bool IsOperatingSystemPluginThread(const lldb::ThreadSP &thread_sp)
static OperatingSystemCreateInstance GetOperatingSystemCreateCallbackAtIndex(uint32_t idx)
static OperatingSystemCreateInstance GetOperatingSystemCreateCallbackForPluginName(llvm::StringRef name)
A plug-in interface definition class for debugging a process.
Definition: Process.h:341
A class that represents a running process on the host machine.
Definition: SBAttachInfo.h:14
OperatingSystem *(* OperatingSystemCreateInstance)(Process *process, bool force)
Definition: SBAddress.h:15
std::shared_ptr< lldb_private::Thread > ThreadSP
Definition: lldb-forward.h:438