1 //===-- LocateSymbolFile.h --------------------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef liblldb_Symbols_h_
10 #define liblldb_Symbols_h_
14 #include "lldb/Core/FileSpecList.h"
15 #include "lldb/Utility/FileSpec.h"
17 namespace lldb_private {
25 // Locate the executable file given a module specification.
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);
31 // Locate the symbol file given a module specification.
33 // Locating the file should happen only on the local computer or using the
34 // current computers global settings.
36 LocateExecutableSymbolFile(const ModuleSpec &module_spec,
37 const FileSpecList &default_search_paths);
39 static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec,
40 const lldb_private::UUID *uuid,
41 const ArchSpec *arch);
43 // Locate the object and symbol file given a module specification.
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.
52 static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec,
53 bool force_lookup = true);
56 } // namespace lldb_private
58 #endif // liblldb_Symbols_h_