Home | History | Annotate | Download | only in Host
      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