LLDB mainline
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)

◆ CPU_TYPE_ARM64

#define CPU_TYPE_ARM64   (CPU_TYPE_ARM | CPU_ARCH_ABI64)

◆ CPU_TYPE_ARM64_32

#define CPU_TYPE_ARM64_32   (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)

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()

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()

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()

◆ ParseOSVersion()

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

◆ ResolveAndVerifyCandidateSupportDir()

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()

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