Symbols.h revision 4952db8c76f619e3d8a0cf13456097128009d67b
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    //----------------------------------------------------------------------
57    static bool
58    DownloadObjectAndSymbolFile (ModuleSpec &module_spec);
59
60};
61
62} // namespace lldb_private
63
64
65#endif  // liblldb_Symbols_h_
66