LLDB mainline
Functions | Variables
LocateSymbolFileMacOSX.cpp File Reference
#include "lldb/Symbol/LocateSymbolFile.h"
#include <dirent.h>
#include <dlfcn.h>
#include <pwd.h>
#include <CoreFoundation/CoreFoundation.h>
#include "Host/macosx/cfcpp/CFCBundle.h"
#include "Host/macosx/cfcpp/CFCData.h"
#include "Host/macosx/cfcpp/CFCReleaser.h"
#include "Host/macosx/cfcpp/CFCString.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/ModuleList.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/DataBuffer.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/Endian.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/Timer.h"
#include "lldb/Utility/UUID.h"
#include "mach/machine.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/Support/FileSystem.h"

Go to the source code of this file.

Functions

int LocateMacOSXFilesUsingDebugSymbols (const ModuleSpec &module_spec, ModuleSpec &return_module_spec)
 
static bool GetModuleSpecInfoFromUUIDDictionary (CFDictionaryRef uuid_dict, ModuleSpec &module_spec, Status &error, const std::string &command)
 
static llvm::StringRef GetDbgShellCommand ()
 It's expensive to check for the DBGShellCommands defaults setting.
 
static FileSpec GetDsymForUUIDExecutable ()
 Get the dsymForUUID executable and cache the result so we don't end up stat'ing the binary over and over.
 

Variables

static CFURLRef(* g_dlsym_DBGCopyFullDSYMURLForUUID )(CFUUIDRef uuid, CFURLRef exec_url) = nullptr
 
static CFDictionaryRef(* g_dlsym_DBGCopyDSYMPropertyLists )(CFURLRef dsym_url)
 

Function Documentation

◆ GetDbgShellCommand()

static llvm::StringRef GetDbgShellCommand ( )
static

It's expensive to check for the DBGShellCommands defaults setting.

Only do it once per lldb run and cache the result.

Definition at line 500 of file LocateSymbolFileMacOSX.cpp.

References PATH_MAX.

Referenced by GetDsymForUUIDExecutable().

◆ GetDsymForUUIDExecutable()

static FileSpec GetDsymForUUIDExecutable ( )
static

Get the dsymForUUID executable and cache the result so we don't end up stat'ing the binary over and over.

Definition at line 523 of file LocateSymbolFileMacOSX.cpp.

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

◆ GetModuleSpecInfoFromUUIDDictionary()

static bool GetModuleSpecInfoFromUUIDDictionary ( CFDictionaryRef  uuid_dict,
ModuleSpec module_spec,
Status error,
const std::string &  command 
)
static

◆ LocateMacOSXFilesUsingDebugSymbols()

int LocateMacOSXFilesUsingDebugSymbols ( const ModuleSpec module_spec,
ModuleSpec return_module_spec 
)

Variable Documentation

◆ g_dlsym_DBGCopyDSYMPropertyLists

CFDictionaryRef(* g_dlsym_DBGCopyDSYMPropertyLists) (CFURLRef dsym_url) ( CFURLRef  dsym_url)
static
Initial value:
=
nullptr

Definition at line 46 of file LocateSymbolFileMacOSX.cpp.

Referenced by LocateMacOSXFilesUsingDebugSymbols().

◆ g_dlsym_DBGCopyFullDSYMURLForUUID

CFURLRef(* g_dlsym_DBGCopyFullDSYMURLForUUID) (CFUUIDRef uuid, CFURLRef exec_url) ( CFUUIDRef  uuid,
CFURLRef  exec_url 
) = nullptr
static

Definition at line 44 of file LocateSymbolFileMacOSX.cpp.

Referenced by LocateMacOSXFilesUsingDebugSymbols().