LLDB mainline
Macros | Functions
HostInfoMacOSX.mm File Reference
#include "lldb/Host/macosx/HostInfoMacOSX.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Utility/Args.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Timer.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
#include <string>
#include <cstdlib>
#include <sys/sysctl.h>
#include <sys/syslimits.h>
#include <sys/types.h>
#include <uuid/uuid.h>
#include <AvailabilityMacros.h>
#include <CoreFoundation/CoreFoundation.h>
#include <Foundation/Foundation.h>
#include <mach-o/dyld.h>
#include <objc/objc-auto.h>
#include <TargetConditionals.h>

Go to the source code of this file.

Macros

#define CPU_SUBTYPE_X86_64_H   ((cpu_subtype_t)8)
 
#define CPU_TYPE_ARM64   (CPU_TYPE_ARM | CPU_ARCH_ABI64)
 
#define CPU_ARCH_ABI64_32   0x02000000
 
#define CPU_TYPE_ARM64_32   (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)
 

Functions

static void ParseOSVersion (llvm::VersionTuple &version, NSString *Key)
 
static bool ResolveAndVerifyCandidateSupportDir (FileSpec &path)
 Resolve the given candidate support dir and return true if it's valid.
 
static std::string GetEnvDeveloperDir ()
 Return and cache $DEVELOPER_DIR if it is set and exists.
 
static llvm::Expected< std::string > xcrun (const std::string &sdk, llvm::ArrayRef< llvm::StringRef > arguments, llvm::StringRef developer_dir="")
 
static llvm::Expected< std::string > GetXcodeSDK (XcodeSDK sdk)
 
static llvm::Expected< llvm::StringRef > find_cached_path (llvm::StringMap< ErrorOrPath > &cache, std::mutex &mutex, llvm::StringRef key, std::function< llvm::Expected< std::string >(void)> compute)
 
int dyld_shared_cache_iterate_text (const uuid_t cacheUuid, void(^callback)(const dyld_shared_cache_dylib_text_info *info))
 
uint8_t * _dyld_get_shared_cache_range (size_t *length)
 
bool _dyld_get_shared_cache_uuid (uuid_t uuid)
 

Macro Definition Documentation

◆ CPU_ARCH_ABI64_32

#define CPU_ARCH_ABI64_32   0x02000000

Definition at line 60 of file HostInfoMacOSX.mm.

◆ CPU_SUBTYPE_X86_64_H

#define CPU_SUBTYPE_X86_64_H   ((cpu_subtype_t)8)

Definition at line 53 of file HostInfoMacOSX.mm.

◆ CPU_TYPE_ARM64

#define CPU_TYPE_ARM64   (CPU_TYPE_ARM | CPU_ARCH_ABI64)

Definition at line 56 of file HostInfoMacOSX.mm.

◆ CPU_TYPE_ARM64_32

#define CPU_TYPE_ARM64_32   (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)

Definition at line 61 of file HostInfoMacOSX.mm.

Function Documentation

◆ _dyld_get_shared_cache_range()

uint8_t * _dyld_get_shared_cache_range ( size_t *  length)

◆ _dyld_get_shared_cache_uuid()

bool _dyld_get_shared_cache_uuid ( uuid_t  uuid)

◆ dyld_shared_cache_iterate_text()

int dyld_shared_cache_iterate_text ( const uuid_t  cacheUuid,
void(^)(const dyld_shared_cache_dylib_text_info *info)  callback 
)

◆ find_cached_path()

static llvm::Expected< llvm::StringRef > find_cached_path ( llvm::StringMap< ErrorOrPath > &  cache,
std::mutex &  mutex,
llvm::StringRef  key,
std::function< llvm::Expected< std::string >(void)>  compute 
)
static

◆ GetEnvDeveloperDir()

static std::string GetEnvDeveloperDir ( )
static

Return and cache $DEVELOPER_DIR if it is set and exists.

Definition at line 321 of file HostInfoMacOSX.mm.

References lldb_private::FileSpec::GetPath(), and lldb_private::FileSystem::Instance().

Referenced by lldb_private::HostInfoMacOSX::GetXcodeContentsDirectory(), and GetXcodeSDK().

◆ GetXcodeSDK()

static llvm::Expected< std::string > GetXcodeSDK ( XcodeSDK  sdk)
static

◆ ParseOSVersion()

static void ParseOSVersion ( llvm::VersionTuple &  version,
NSString *  Key 
)
static

◆ ResolveAndVerifyCandidateSupportDir()

static bool ResolveAndVerifyCandidateSupportDir ( FileSpec path)
static

Resolve the given candidate support dir and return true if it's valid.

Definition at line 128 of file HostInfoMacOSX.mm.

References lldb_private::FileSystem::Instance(), lldb_private::FileSystem::IsDirectory(), and lldb_private::FileSystem::Resolve().

Referenced by lldb_private::HostInfoMacOSX::ComputeSupportExeDirectory().

◆ xcrun()

static llvm::Expected< std::string > xcrun ( const std::string &  sdk,
llvm::ArrayRef< llvm::StringRef >  arguments,
llvm::StringRef  developer_dir = "" 
)
static