LLDB mainline
Classes | Macros | Enumerations | Functions | Variables
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/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  ProcessMemoryIterator
 
class  ProcessExperimentalOptionValueProperties
 
class  IOHandlerProcessSTDIO
 

Macros

#define ENABLE_MEMORY_CACHING
 
#define DISABLE_MEM_CACHE_DEFAULT   false
 
#define LLDB_PROPERTIES_process
 
#define LLDB_PROPERTIES_process
 
#define LLDB_PROPERTIES_process_experimental
 
#define LLDB_PROPERTIES_process_experimental
 
#define USE_ALLOCATE_MEMORY_CACHE   1
 

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 Process::CoreFileMemoryRange CreateCoreFileMemoryRange (const MemoryRegionInfo &region)
 
static bool AddDirtyPages (const MemoryRegionInfo &region, Process::CoreFileMemoryRanges &ranges)
 
static void AddRegion (const MemoryRegionInfo &region, bool try_dirty_pages, Process::CoreFileMemoryRanges &ranges)
 
static void SaveOffRegionsWithStackPointers (Process &process, const SaveCoreOptions &core_options, const MemoryRegionInfos &regions, Process::CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
 
static void GetCoreFileSaveRangesFull (Process &process, const MemoryRegionInfos &regions, Process::CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
 
static void GetCoreFileSaveRangesDirtyOnly (Process &process, const MemoryRegionInfos &regions, Process::CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
 
static void GetCoreFileSaveRangesStackOnly (Process &process, const MemoryRegionInfos &regions, Process::CoreFileMemoryRanges &ranges, std::set< addr_t > &stack_ends)
 

Variables

static constexpr OptionEnumValueElement g_follow_fork_mode_values []
 

Macro Definition Documentation

◆ DISABLE_MEM_CACHE_DEFAULT

#define DISABLE_MEM_CACHE_DEFAULT   false

Definition at line 87 of file Process.cpp.

◆ ENABLE_MEMORY_CACHING

#define ENABLE_MEMORY_CACHING

Definition at line 84 of file Process.cpp.

◆ LLDB_PROPERTIES_process [1/2]

#define LLDB_PROPERTIES_process

Definition at line 161 of file Process.cpp.

◆ LLDB_PROPERTIES_process [2/2]

#define LLDB_PROPERTIES_process

Definition at line 161 of file Process.cpp.

◆ LLDB_PROPERTIES_process_experimental [1/2]

#define LLDB_PROPERTIES_process_experimental

Definition at line 170 of file Process.cpp.

◆ LLDB_PROPERTIES_process_experimental [2/2]

#define LLDB_PROPERTIES_process_experimental

Definition at line 170 of file Process.cpp.

◆ USE_ALLOCATE_MEMORY_CACHE

#define USE_ALLOCATE_MEMORY_CACHE   1

Definition at line 2436 of file Process.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ePropertyExperimental 

Definition at line 160 of file Process.cpp.

◆ anonymous enum

anonymous enum

Definition at line 169 of file Process.cpp.

Function Documentation

◆ AddDirtyPages()

static bool AddDirtyPages ( const MemoryRegionInfo region,
Process::CoreFileMemoryRanges ranges 
)
static

◆ AddRegion()

static void AddRegion ( const MemoryRegionInfo region,
bool  try_dirty_pages,
Process::CoreFileMemoryRanges ranges 
)
static

◆ CreateCoreFileMemoryRange()

static Process::CoreFileMemoryRange CreateCoreFileMemoryRange ( const MemoryRegionInfo region)
static

◆ GetCoreFileSaveRangesDirtyOnly()

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

◆ GetCoreFileSaveRangesFull()

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

Definition at line 6592 of file Process.cpp.

References AddRegion().

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

◆ GetCoreFileSaveRangesStackOnly()

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

◆ GetExpressionTimeout()

static Timeout< std::micro > GetExpressionTimeout ( const EvaluateExpressionOptions options,
bool  before_first_timeout 
)
static

◆ GetOneThreadExpressionTimeout()

static microseconds GetOneThreadExpressionTimeout ( const EvaluateExpressionOptions options)
static

◆ HandleStoppedEvent()

static std::optional< ExpressionResults > HandleStoppedEvent ( 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

◆ SaveOffRegionsWithStackPointers()

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

Variable Documentation

◆ g_follow_fork_mode_values

constexpr 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 144 of file Process.cpp.