]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / include / lldb / Host / Symbols.h
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
16 // C++ Includes
17 // Other libraries and framework includes
18 // Project includes
19 #include "lldb/Host/FileSpec.h"
20
21 namespace lldb_private {
22
23 class Symbols
24 {
25 public:
26     //----------------------------------------------------------------------
27     // Locate the executable file given a module specification.
28     //
29     // Locating the file should happen only on the local computer or using
30     // the current computers global settings.
31     //----------------------------------------------------------------------
32     static FileSpec
33     LocateExecutableObjectFile (const ModuleSpec &module_spec);
34
35     //----------------------------------------------------------------------
36     // Locate the symbol file given a module specification.
37     //
38     // Locating the file should happen only on the local computer or using
39     // the current computers global settings.
40     //----------------------------------------------------------------------
41     static FileSpec
42     LocateExecutableSymbolFile (const ModuleSpec &module_spec);
43         
44     static FileSpec
45     FindSymbolFileInBundle (const FileSpec& dsym_bundle_fspec,
46                             const lldb_private::UUID *uuid,
47                             const ArchSpec *arch);
48     
49     //----------------------------------------------------------------------
50     // Locate the object and symbol file given a module specification.
51     //
52     // Locating the file can try to download the file from a corporate build
53     // respository, or using any other means necessary to locate both the
54     // unstripped object file and the debug symbols.  
55     // The force_lookup argument controls whether the external program is called
56     // unconditionally to find the symbol file, or if the user's settings are
57     // checked to see if they've enabled the external program before calling.
58     // 
59     //----------------------------------------------------------------------
60     static bool
61     DownloadObjectAndSymbolFile (ModuleSpec &module_spec, bool force_lookup = true);
62                                  
63 };
64
65 } // namespace lldb_private
66
67
68 #endif  // liblldb_Symbols_h_