1 //===-- Symbols.h -----------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_Symbols_h_ 11 #define liblldb_Symbols_h_ 12 13 // C Includes 14 #include <stdint.h> 15 #include <sys/time.h> 16 17 // C++ Includes 18 // Other libraries and framework includes 19 // Project includes 20 #include "lldb/Host/FileSpec.h" 21 22 namespace lldb_private { 23 24 class Symbols 25 { 26 public: 27 //---------------------------------------------------------------------- 28 // Locate the executable file given a module specification. 29 // 30 // Locating the file should happen only on the local computer or using 31 // the current computers global settings. 32 //---------------------------------------------------------------------- 33 static FileSpec 34 LocateExecutableObjectFile (const ModuleSpec &module_spec); 35 36 //---------------------------------------------------------------------- 37 // Locate the symbol file given a module specification. 38 // 39 // Locating the file should happen only on the local computer or using 40 // the current computers global settings. 41 //---------------------------------------------------------------------- 42 static FileSpec 43 LocateExecutableSymbolFile (const ModuleSpec &module_spec); 44 45 static FileSpec 46 FindSymbolFileInBundle (const FileSpec& dsym_bundle_fspec, 47 const lldb_private::UUID *uuid, 48 const ArchSpec *arch); 49 50 //---------------------------------------------------------------------- 51 // Locate the object and symbol file given a module specification. 52 // 53 // Locating the file can try to download the file from a corporate build 54 // respository, or using any other means necessary to locate both the 55 // unstripped object file and the debug symbols. 56 // The force_lookup argument controls whether the external program is called 57 // unconditionally to find the symbol file, or if the user's settings are 58 // checked to see if they've enabled the external program before calling. 59 // 60 //---------------------------------------------------------------------- 61 static bool 62 DownloadObjectAndSymbolFile (ModuleSpec &module_spec, bool force_lookup = true); 63 64 }; 65 66 } // namespace lldb_private 67 68 69 #endif // liblldb_Symbols_h_ 70