LLDB mainline
Process.cpp File Reference
#include <atomic>
#include <memory>
#include <mutex>
#include <optional>
#include "llvm/ADT/ScopeExit.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Support/Threading.h"
#include "lldb/Breakpoint/BreakpointLocation.h"
#include "lldb/Breakpoint/StoppointCallbackContext.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Progress.h"
#include "lldb/Core/Telemetry.h"
#include "lldb/Expression/DiagnosticManager.h"
#include "lldb/Expression/DynamicCheckerFunctions.h"
#include "lldb/Expression/UserExpression.h"
#include "lldb/Expression/UtilityFunction.h"
#include "lldb/Host/ConnectionFileDescriptor.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Host/OptionParser.h"
#include "lldb/Host/Pipe.h"
#include "lldb/Host/Terminal.h"
#include "lldb/Host/ThreadLauncher.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/OptionArgParser.h"
#include "lldb/Interpreter/OptionValueProperties.h"
#include "lldb/Symbol/Function.h"
#include "lldb/Symbol/Symbol.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/AssertFrameRecognizer.h"
#include "lldb/Target/DynamicLoader.h"
#include "lldb/Target/InstrumentationRuntime.h"
#include "lldb/Target/JITLoader.h"
#include "lldb/Target/JITLoaderList.h"
#include "lldb/Target/Language.h"
#include "lldb/Target/LanguageRuntime.h"
#include "lldb/Target/MemoryHistory.h"
#include "lldb/Target/MemoryRegionInfo.h"
#include "lldb/Target/OperatingSystem.h"
#include "lldb/Target/Platform.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StopInfo.h"
#include "lldb/Target/StructuredDataPlugin.h"
#include "lldb/Target/SystemRuntime.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/TargetList.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/ThreadPlan.h"
#include "lldb/Target/ThreadPlanBase.h"
#include "lldb/Target/ThreadPlanCallFunction.h"
#include "lldb/Target/ThreadPlanStack.h"
#include "lldb/Target/UnixSignals.h"
#include "lldb/Target/VerboseTrapFrameRecognizer.h"
#include "lldb/Utility/AddressableBits.h"
#include "lldb/Utility/Event.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/NameMatches.h"
#include "lldb/Utility/ProcessInfo.h"
#include "lldb/Utility/SelectHelper.h"
#include "lldb/Utility/State.h"
#include "lldb/Utility/Timer.h"
#include "TargetProperties.inc"
#include "TargetPropertiesEnum.inc"

Go to the source code of this file.

Classes

class  ProcessOptionValueProperties
class  ProcessExperimentalOptionValueProperties
class  IOHandlerProcessSTDIO

Macros

#define LLDB_PROPERTIES_process
#define LLDB_PROPERTIES_process
#define LLDB_PROPERTIES_process_experimental
#define LLDB_PROPERTIES_process_experimental

Enumerations

enum  { ePropertyExperimental }
enum  

Functions

static microseconds GetOneThreadExpressionTimeout (const EvaluateExpressionOptions &options)
static Timeout< std::micro > GetExpressionTimeout (const EvaluateExpressionOptions &options, bool before_first_timeout)
static std::optional< ExpressionResultsHandleStoppedEvent (lldb::tid_t thread_id, const ThreadPlanSP &thread_plan_sp, RestorePlanState &restorer, const EventSP &event_sp, EventSP &event_to_broadcast_sp, const EvaluateExpressionOptions &options, bool handle_interrupts)
static CoreFileMemoryRange CreateCoreFileMemoryRange (const MemoryRegionInfo &region)
static bool AddDirtyPages (const MemoryRegionInfo &region, CoreFileMemoryRanges &ranges)
static void AddRegion (const MemoryRegionInfo &region, bool try_dirty_pages, CoreFileMemoryRanges &ranges)
static void SaveDynamicLoaderSections (Process &process, const SaveCoreOptions &options, CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
static void SaveOffRegionsWithStackPointers (Process &process, const SaveCoreOptions &core_options, const MemoryRegionInfos &regions, CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
static void GetCoreFileSaveRangesFull (Process &process, const MemoryRegionInfos &regions, CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
static void GetCoreFileSaveRangesDirtyOnly (Process &process, const MemoryRegionInfos &regions, CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
static void GetCoreFileSaveRangesStackOnly (Process &process, const MemoryRegionInfos &regions, CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
static MemoryRegionInfo Intersect (const MemoryRegionInfo &lhs, const MemoryRegionInfo::RangeType &rhs)
static void GetUserSpecifiedCoreFileSaveRanges (Process &process, const MemoryRegionInfos &regions, const SaveCoreOptions &options, CoreFileMemoryRanges &ranges)

Variables

static constexpr OptionEnumValueElement g_follow_fork_mode_values []

Macro Definition Documentation

◆ LLDB_PROPERTIES_process [1/2]

#define LLDB_PROPERTIES_process

Definition at line 121 of file Process.cpp.

◆ LLDB_PROPERTIES_process [2/2]

#define LLDB_PROPERTIES_process

Definition at line 121 of file Process.cpp.

◆ LLDB_PROPERTIES_process_experimental [1/2]

#define LLDB_PROPERTIES_process_experimental

Definition at line 130 of file Process.cpp.

◆ LLDB_PROPERTIES_process_experimental [2/2]

#define LLDB_PROPERTIES_process_experimental

Definition at line 130 of file Process.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ePropertyExperimental 

Definition at line 124 of file Process.cpp.

◆ anonymous enum

anonymous enum

Definition at line 133 of file Process.cpp.

Function Documentation

◆ AddDirtyPages()

◆ AddRegion()

◆ CreateCoreFileMemoryRange()

◆ GetCoreFileSaveRangesDirtyOnly()

void GetCoreFileSaveRangesDirtyOnly ( Process & process,
const MemoryRegionInfos & regions,
CoreFileMemoryRanges & ranges,
std::set< addr_t > & stack_ends )
static

◆ GetCoreFileSaveRangesFull()

void GetCoreFileSaveRangesFull ( Process & process,
const MemoryRegionInfos & regions,
CoreFileMemoryRanges & ranges,
std::set< addr_t > & stack_ends )
static

Definition at line 6637 of file Process.cpp.

References AddRegion().

Referenced by lldb_private::Process::CalculateCoreFileSaveRanges().

◆ GetCoreFileSaveRangesStackOnly()

void GetCoreFileSaveRangesStackOnly ( Process & process,
const MemoryRegionInfos & regions,
CoreFileMemoryRanges & ranges,
std::set< addr_t > & stack_ends )
static

◆ GetExpressionTimeout()

◆ GetOneThreadExpressionTimeout()

microseconds GetOneThreadExpressionTimeout ( const EvaluateExpressionOptions & options)
static

◆ GetUserSpecifiedCoreFileSaveRanges()

void GetUserSpecifiedCoreFileSaveRanges ( Process & process,
const MemoryRegionInfos & regions,
const SaveCoreOptions & options,
CoreFileMemoryRanges & ranges )
static

◆ HandleStoppedEvent()

◆ Intersect()

◆ SaveDynamicLoaderSections()

◆ SaveOffRegionsWithStackPointers()

Variable Documentation

◆ g_follow_fork_mode_values

OptionEnumValueElement g_follow_fork_mode_values[]
staticconstexpr
Initial value:
= {
{
"parent",
"Continue tracing the parent process and detach the child.",
},
{
"child",
"Trace the child process and detach the parent.",
},
}

Definition at line 108 of file Process.cpp.