LLDB  mainline
LocateSymbolFile.h
Go to the documentation of this file.
1 //===-- LocateSymbolFile.h --------------------------------------*- C++ -*-===//
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_SYMBOL_LOCATESYMBOLFILE_H
10 #define LLDB_SYMBOL_LOCATESYMBOLFILE_H
11 
12 #include <stdint.h>
13 
14 #include "lldb/Core/FileSpecList.h"
15 #include "lldb/Utility/FileSpec.h"
16 
17 namespace lldb_private {
18 
19 class ArchSpec;
20 class ModuleSpec;
21 class UUID;
22 
23 class Symbols {
24 public:
25  // Locate the executable file given a module specification.
26  //
27  // Locating the file should happen only on the local computer or using the
28  // current computers global settings.
29  static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec);
30 
31  // Locate the symbol file given a module specification.
32  //
33  // Locating the file should happen only on the local computer or using the
34  // current computers global settings.
35  static FileSpec
36  LocateExecutableSymbolFile(const ModuleSpec &module_spec,
37  const FileSpecList &default_search_paths);
38 
39  static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec,
40  const lldb_private::UUID *uuid,
41  const ArchSpec *arch);
42 
43  // Locate the object and symbol file given a module specification.
44  //
45  // Locating the file can try to download the file from a corporate build
46  // repository, or using any other means necessary to locate both the
47  // unstripped object file and the debug symbols. The force_lookup argument
48  // controls whether the external program is called unconditionally to find
49  // the symbol file, or if the user's settings are checked to see if they've
50  // enabled the external program before calling.
51  //
52  static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec,
53  bool force_lookup = true);
54 };
55 
56 } // namespace lldb_private
57 
58 #endif // LLDB_SYMBOL_LOCATESYMBOLFILE_H
lldb_private::UUID
Definition: UUID.h:23
lldb_private::ArchSpec
Definition: ArchSpec.h:33
lldb_private::Symbols::LocateExecutableObjectFile
static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec)
Definition: LocateSymbolFile.cpp:231
lldb_private::FileSpec
Definition: FileSpec.h:56
lldb_private::Symbols::LocateExecutableSymbolFile
static FileSpec LocateExecutableSymbolFile(const ModuleSpec &module_spec, const FileSpecList &default_search_paths)
Definition: LocateSymbolFile.cpp:257
lldb_private::Symbols::FindSymbolFileInBundle
static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec, const lldb_private::UUID *uuid, const ArchSpec *arch)
Definition: LocateSymbolFile.cpp:379
FileSpecList.h
lldb_private::ModuleSpec
Definition: ModuleSpec.h:26
lldb_private::Symbols::DownloadObjectAndSymbolFile
static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec, bool force_lookup=true)
Definition: LocateSymbolFile.cpp:386
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::Symbols
Definition: LocateSymbolFile.h:23
FileSpec.h