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 17namespace lldb_private { 18 19class ArchSpec; 20class ModuleSpec; 21class UUID; 22 23class Symbols { 24public: 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_ 59