Symbols.h revision d6d45ceeae51b6dbb9221a3cf82441afa212a7dc
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 22namespace lldb_private { 23 24class Symbols 25{ 26public: 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