LLDB
mainline
llvm-project
lldb
source
Plugins
SymbolLocator
SymStore
SymbolLocatorSymStore.h
Go to the documentation of this file.
1
//===----------------------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLDB_SOURCE_PLUGINS_SYMBOLLOCATOR_SYMSTORE_SYMBOLLOCATORSYMSTORE_H
10
#define LLDB_SOURCE_PLUGINS_SYMBOLLOCATOR_SYMSTORE_SYMBOLLOCATORSYMSTORE_H
11
12
#include "
lldb/Core/Debugger.h
"
13
#include "
lldb/Symbol/SymbolLocator.h
"
14
#include "
lldb/lldb-private.h
"
15
16
namespace
lldb_private
{
17
18
/// This plugin implements lookup in Microsoft SymStore instances. This can work
19
/// cross-platform and for arbitrary debug info formats, but the focus is on PDB
20
/// with PE/COFF binaries on Windows.
21
class
SymbolLocatorSymStore
:
public
SymbolLocator
{
22
public
:
23
SymbolLocatorSymStore
();
24
25
static
void
Initialize
();
26
static
void
Terminate
();
27
static
void
DebuggerInitialize
(
Debugger
&debugger);
28
29
static
llvm::StringRef
GetPluginNameStatic
() {
return
"symstore"
; }
30
static
llvm::StringRef
GetPluginDescriptionStatic
();
31
32
static
lldb_private::SymbolLocator
*
CreateInstance
();
33
34
/// PluginInterface protocol.
35
/// \{
36
llvm::StringRef
GetPluginName
()
override
{
return
GetPluginNameStatic
(); }
37
/// \}
38
39
// Locate the symbol file given a module specification.
40
//
41
// Locating the file should happen only on the local computer or using the
42
// current computers global settings.
43
static
std::optional<FileSpec>
44
LocateExecutableSymbolFile
(
const
ModuleSpec
&module_spec,
45
const
FileSpecList
&default_search_paths);
46
47
struct
LookupEntry
{
48
std::string
source
;
49
std::optional<std::string>
cache
;
50
};
51
52
static
std::vector<LookupEntry>
ParseEnvSymbolPaths
(llvm::StringRef val);
53
static
std::string
GetSystemDefaultCachePath
();
54
};
55
56
}
// namespace lldb_private
57
58
#endif
// LLDB_SOURCE_PLUGINS_SYMBOLLOCATOR_SYMSTORE_SYMBOLLOCATORSYMSTORE_H
Debugger.h
SymbolLocator.h
lldb_private::Debugger
A class to manage flag bits.
Definition
Debugger.h:100
lldb_private::FileSpecList
A file collection class.
Definition
FileSpecList.h:91
lldb_private::ModuleSpec
Definition
ModuleSpec.h:30
lldb_private::SymbolLocatorSymStore::DebuggerInitialize
static void DebuggerInitialize(Debugger &debugger)
Definition
SymbolLocatorSymStore.cpp:115
lldb_private::SymbolLocatorSymStore::GetPluginName
llvm::StringRef GetPluginName() override
PluginInterface protocol.
Definition
SymbolLocatorSymStore.h:36
lldb_private::SymbolLocatorSymStore::CreateInstance
static lldb_private::SymbolLocator * CreateInstance()
Definition
SymbolLocatorSymStore.cpp:135
lldb_private::SymbolLocatorSymStore::Initialize
static void Initialize()
Definition
SymbolLocatorSymStore.cpp:100
lldb_private::SymbolLocatorSymStore::GetPluginNameStatic
static llvm::StringRef GetPluginNameStatic()
Definition
SymbolLocatorSymStore.h:29
lldb_private::SymbolLocatorSymStore::GetPluginDescriptionStatic
static llvm::StringRef GetPluginDescriptionStatic()
Definition
SymbolLocatorSymStore.cpp:131
lldb_private::SymbolLocatorSymStore::LocateExecutableSymbolFile
static std::optional< FileSpec > LocateExecutableSymbolFile(const ModuleSpec &module_spec, const FileSpecList &default_search_paths)
Definition
SymbolLocatorSymStore.cpp:439
lldb_private::SymbolLocatorSymStore::GetSystemDefaultCachePath
static std::string GetSystemDefaultCachePath()
Definition
SymbolLocatorSymStore.cpp:520
lldb_private::SymbolLocatorSymStore::Terminate
static void Terminate()
Definition
SymbolLocatorSymStore.cpp:126
lldb_private::SymbolLocatorSymStore::ParseEnvSymbolPaths
static std::vector< LookupEntry > ParseEnvSymbolPaths(llvm::StringRef val)
Definition
SymbolLocatorSymStore.cpp:472
lldb_private::SymbolLocatorSymStore::SymbolLocatorSymStore
SymbolLocatorSymStore()
Definition
SymbolLocatorSymStore.cpp:98
lldb_private::SymbolLocator
Definition
SymbolLocator.h:17
lldb_private::SymbolLocator::SymbolLocator
SymbolLocator()=default
lldb-private.h
lldb_private
A class that represents a running process on the host machine.
Definition
SBAddressRange.h:14
lldb_private::SymbolLocatorSymStore::LookupEntry
Definition
SymbolLocatorSymStore.h:47
lldb_private::SymbolLocatorSymStore::LookupEntry::source
std::string source
Definition
SymbolLocatorSymStore.h:48
lldb_private::SymbolLocatorSymStore::LookupEntry::cache
std::optional< std::string > cache
Definition
SymbolLocatorSymStore.h:49
Generated on
for LLDB by
1.14.0