9#ifndef LLDB_SYMBOL_SYMBOLLOCATOR_H
10#define LLDB_SYMBOL_SYMBOLLOCATOR_H
18#include "llvm/ADT/ArrayRef.h"
19#include "llvm/Support/Error.h"
23#include <system_error>
35 class NotFound :
public llvm::ErrorInfo<NotFound> {
39 void log(llvm::raw_ostream &os)
const override;
95 static std::vector<llvm::Expected<Result>>
108 static llvm::Expected<Result>
PluginInterface()=default
A class to count time for plugins.
A binary was not found and nothing could say why.
std::error_code convertToErrorCode() const override
void log(llvm::raw_ostream &os) const override
static void DownloadSymbolFileAsync(const UUID &uuid)
Locate the symbol file for the given UUID on a background thread.
static llvm::Expected< Result > Locate(const Request &request, const FileSpecList &search_paths)
Find a binary and, if possible, its symbols.
static llvm::Expected< Result > LocateWithPlugins(const Request &request, const FileSpecList &search_paths)
Must stay callable concurrently.
Represents UUID's of various sizes.
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Platform > PlatformSP
One binary to search for.
lldb::PlatformSP platform
A platform that may know where the binary is.
std::string description
How to name this binary in a progress report.
ModuleSpec module_spec
What to look for.
bool external_lookup
Allow contacting an external symbol server when the local searches come up empty.
std::optional< llvm::Error > symbol_error
What an external symbol server had to say about the symbols, even though the binary itself was found.
StatisticsMap statistics
Where the time went, to be merged into the Module once it exists.
ModuleSpec module_spec
The binary, and its symbol file if there is one to be had.