LLDB  mainline
Classes | Functions | Variables
AppleObjCRuntimeV2.cpp File Reference
#include <cstdint>
#include <memory>
#include <string>
#include <vector>
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclObjC.h"
#include "lldb/Host/OptionParser.h"
#include "lldb/Symbol/CompilerType.h"
#include "lldb/lldb-enumerations.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Section.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/Core/ValueObjectVariable.h"
#include "lldb/Expression/DiagnosticManager.h"
#include "lldb/Expression/FunctionCaller.h"
#include "lldb/Expression/UtilityFunction.h"
#include "lldb/Interpreter/CommandObject.h"
#include "lldb/Interpreter/CommandObjectMultiword.h"
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Interpreter/OptionArgParser.h"
#include "lldb/Interpreter/OptionValueBoolean.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/Symbol.h"
#include "lldb/Symbol/TypeList.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/DynamicLoader.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/Platform.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StackFrameRecognizer.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Scalar.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/Stream.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/Timer.h"
#include "AppleObjCClassDescriptorV2.h"
#include "AppleObjCDeclVendor.h"
#include "AppleObjCRuntimeV2.h"
#include "AppleObjCTrampolineHandler.h"
#include "AppleObjCTypeEncodingParser.h"
#include "clang/Basic/TargetInfo.h"
#include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"

Go to the source code of this file.

Classes

class  CommandObjectObjC_ClassTable_Dump
 
class  CommandObjectObjC_ClassTable_Dump::CommandOptions
 
class  CommandObjectMultiwordObjC_TaggedPointer_Info
 
class  CommandObjectMultiwordObjC_ClassTable
 
class  CommandObjectMultiwordObjC_TaggedPointer
 
class  CommandObjectMultiwordObjC
 
class  RemoteNXMapTable
 
class  RemoteNXMapTable::const_iterator
 
class  ObjCExceptionRecognizedStackFrame
 
class  ObjCExceptionThrowFrameRecognizer
 

Functions

static uint64_t ExtractRuntimeGlobalSymbol (Process *process, ConstString name, const ModuleSP &module_sp, Status &error, bool read_value=true, uint8_t byte_size=0, uint64_t default_value=LLDB_INVALID_ADDRESS, SymbolType sym_type=lldb::eSymbolTypeData)
 
static void RegisterObjCExceptionRecognizer (Process *process)
 
static bool DoesProcessHaveSharedCache (Process &process)
 

Variables

static const char * g_get_dynamic_class_info_name
 
static const char * g_get_dynamic_class_info_body
 
static const char * g_get_dynamic_class_info2_name
 
static const char * g_get_dynamic_class_info2_body
 
static const char * g_shared_cache_class_name_funcptr
 
static const char * g_get_shared_cache_class_info_name
 
static const char * g_get_shared_cache_class_info_body
 
static constexpr OptionDefinition g_objc_classtable_dump_options []
 

Function Documentation

◆ DoesProcessHaveSharedCache()

static bool DoesProcessHaveSharedCache ( Process process)
static

◆ ExtractRuntimeGlobalSymbol()

static uint64_t ExtractRuntimeGlobalSymbol ( Process process,
ConstString  name,
const ModuleSP &  module_sp,
Status error,
bool  read_value = true,
uint8_t  byte_size = 0,
uint64_t  default_value = LLDB_INVALID_ADDRESS,
SymbolType  sym_type = lldb::eSymbolTypeData 
)
static

◆ RegisterObjCExceptionRecognizer()

static void RegisterObjCExceptionRecognizer ( Process process)
static

Variable Documentation

◆ g_get_dynamic_class_info2_body

const char* g_get_dynamic_class_info2_body
static

◆ g_get_dynamic_class_info2_name

const char* g_get_dynamic_class_info2_name
static
Initial value:
=
"__lldb_apple_objc_v2_get_dynamic_class_info2"

Definition at line 167 of file AppleObjCRuntimeV2.cpp.

Referenced by lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunction().

◆ g_get_dynamic_class_info_body

const char* g_get_dynamic_class_info_body
static

◆ g_get_dynamic_class_info_name

const char* g_get_dynamic_class_info_name
static
Initial value:
=
"__lldb_apple_objc_v2_get_dynamic_class_info"

Definition at line 77 of file AppleObjCRuntimeV2.cpp.

Referenced by lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunction().

◆ g_get_shared_cache_class_info_body

const char* g_get_shared_cache_class_info_body
static

◆ g_get_shared_cache_class_info_name

const char* g_get_shared_cache_class_info_name
static
Initial value:
=
"__lldb_apple_objc_v2_get_shared_cache_class_info"

Definition at line 246 of file AppleObjCRuntimeV2.cpp.

Referenced by lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunctionImpl().

◆ g_objc_classtable_dump_options

constexpr OptionDefinition g_objc_classtable_dump_options[]
staticconstexpr
Initial value:
= {
false,
"verbose",
'v',
OptionParser::eNoArgument,
nullptr,
{},
0,
"Print ivar and method information in detail"}}

Definition at line 749 of file AppleObjCRuntimeV2.cpp.

Referenced by CommandObjectObjC_ClassTable_Dump::CommandOptions::GetDefinitions().

◆ g_shared_cache_class_name_funcptr

const char* g_shared_cache_class_name_funcptr
static
Initial value:
= R"(
extern "C"
{
const char *%s(void *objc_class);
const char *(*class_name_lookup_func)(void *) = %s;
}
)"

Definition at line 238 of file AppleObjCRuntimeV2.cpp.

Referenced by lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunctionImpl().

LLDB_OPT_SET_ALL
#define LLDB_OPT_SET_ALL
Definition: lldb-defines.h:112
lldb::eArgTypeNone
@ eArgTypeNone
Definition: lldb-enumerations.h:595