]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / Symbol / LocateSymbolFile.h
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 liblldb_Symbols_h_
10 #define liblldb_Symbols_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 // liblldb_Symbols_h_