|
LLDB mainline
|
#include <SymbolLocator.h>
Classes | |
| class | NotFound |
| A binary was not found and nothing could say why. More... | |
| struct | Request |
| One binary to search for. More... | |
| struct | Result |
| What a search found. More... | |
Public Member Functions | |
| SymbolLocator ()=default | |
| Public Member Functions inherited from lldb_private::PluginInterface | |
| PluginInterface ()=default | |
| virtual | ~PluginInterface ()=default |
| virtual llvm::StringRef | GetPluginName ()=0 |
| PluginInterface (const PluginInterface &)=delete | |
| PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
| static llvm::Expected< Result > | Locate (const Request &request, const FileSpecList &search_paths) |
| Find a binary and, if possible, its symbols. | |
| static std::vector< llvm::Expected< Result > > | Locate (llvm::ArrayRef< Request > requests, const FileSpecList &search_paths, bool parallel) |
| The platform hooks run on the calling thread, in order. | |
| static void | DownloadSymbolFileAsync (const UUID &uuid) |
| Locate the symbol file for the given UUID on a background thread. | |
Static Private Member Functions | |
| static llvm::Expected< Result > | LocateWithPlugins (const Request &request, const FileSpecList &search_paths) |
| Must stay callable concurrently. | |
Definition at line 28 of file SymbolLocator.h.
|
default |
Referenced by lldb_private::SymbolLocatorDebuginfod::CreateInstance(), lldb_private::SymbolLocatorDebugSymbols::CreateInstance(), lldb_private::SymbolLocatorDefault::CreateInstance(), lldb_private::SymbolLocatorSymStore::CreateInstance(), lldb_private::SymbolLocatorDebuginfod::SymbolLocatorDebuginfod(), lldb_private::SymbolLocatorDebugSymbols::SymbolLocatorDebugSymbols(), lldb_private::SymbolLocatorDefault::SymbolLocatorDefault(), and lldb_private::SymbolLocatorSymStore::SymbolLocatorSymStore().
|
static |
Locate the symbol file for the given UUID on a background thread.
This function returns immediately. Under the hood it uses the debugger's thread pool to call DownloadObjectAndSymbolFile. If a symbol file is found, this will notify all target which contain the module with the given UUID.
Definition at line 147 of file SymbolLocator.cpp.
References lldb_private::PluginManager::DownloadObjectAndSymbolFile(), error(), lldb::eSymbolDownloadBackground, lldb::eSymbolDownloadForeground, lldb::eSymbolDownloadOff, lldb_private::ModuleList::GetGlobalModuleListProperties(), lldb_private::Debugger::GetThreadPool(), lldb_private::ModuleSpec::GetUUID(), and lldb_private::Debugger::ReportSymbolChange().
Referenced by lldb_private::Module::GetUnwindTable().
|
static |
Find a binary and, if possible, its symbols.
Mutates no Target and no Process, which is what lets a caller holding several binaries search for all of them before installing any.
A miss carries an external symbol server's explanation if it gave one, and is a NotFound when nothing could say why.
Definition at line 92 of file SymbolLocator.cpp.
References AskPlatform(), and LocateWithPlugins().
Referenced by lldb_private::DynamicLoader::LocateBinaries().
|
static |
The platform hooks run on the calling thread, in order.
Only the plugin searches may run concurrently.
Definition at line 100 of file SymbolLocator.cpp.
References AskPlatform(), lldb_private::Debugger::GetThreadPool(), lldb_private::Progress::Increment(), lldb_private::Progress::kDefaultHighFrequencyReportTime, and LocateWithPlugins().
|
staticprivate |
Must stay callable concurrently.
Definition at line 36 of file SymbolLocator.cpp.
References lldb_private::PluginManager::DownloadObjectAndSymbolFile(), error(), lldb_private::FileSystem::Exists(), lldb_private::SymbolLocator::Request::external_lookup, lldb_private::ModuleSpec::GetFileSpec(), lldb_private::ModuleSpec::GetSymbolFileSpec(), lldb_private::FileSystem::Instance(), lldb_private::PluginManager::LocateExecutableObjectFile(), lldb_private::PluginManager::LocateExecutableSymbolFile(), lldb_private::SymbolLocator::Request::module_spec, lldb_private::SymbolLocator::Result::module_spec, lldb_private::SymbolLocator::Result::statistics, and lldb_private::SymbolLocator::Result::symbol_error.