//===-- SystemRuntime.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 // //===----------------------------------------------------------------------===// #ifndef LLDB_TARGET_SYSTEMRUNTIME_H #define LLDB_TARGET_SYSTEMRUNTIME_H #include <vector> #include "lldb/Core/ModuleList.h" #include "lldb/Core/PluginInterface.h" #include "lldb/Target/QueueItem.h" #include "lldb/Target/QueueList.h" #include "lldb/Target/Runtime.h" #include "lldb/Utility/ConstString.h" #include "lldb/Utility/StructuredData.h" #include "lldb/lldb-private.h" #include "lldb/lldb-public.h" namespace lldb_private { /// \class SystemRuntime SystemRuntime.h "lldb/Target/SystemRuntime.h" /// A plug-in interface definition class for system runtimes. /// /// The system runtime plugins can collect information from the system /// libraries during a Process' lifetime and provide information about how /// objects/threads were originated. /// /// For instance, a system runtime plugin use a breakpoint when threads are /// created to record the backtrace of where that thread was created. Later, /// when backtracing the created thread, it could extend the backtrace to show /// where it was originally created from. /// /// The plugin will insert its own breakpoint when Created and start /// collecting information. Later when it comes time to augment a Thread, it /// can be asked to provide that information. /// class SystemRuntime : public Runtime, public PluginInterface { … }; } // namespace lldb_private #endif // LLDB_TARGET_SYSTEMRUNTIME_H