]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.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 #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_