• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- SWIG Interface for SBModule -----------------------------*- 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 namespace lldb {
11 
12 class SBModuleSpec
13 {
14 public:
15 
16     SBModuleSpec ();
17 
18     SBModuleSpec (const lldb::SBModuleSpec &rhs);
19 
20     ~SBModuleSpec ();
21 
22     bool
23     IsValid () const;
24 
25     void
26     Clear();
27 
28     //------------------------------------------------------------------
29     /// Get const accessor for the module file.
30     ///
31     /// This function returns the file for the module on the host system
32     /// that is running LLDB. This can differ from the path on the
33     /// platform since we might be doing remote debugging.
34     ///
35     /// @return
36     ///     A const reference to the file specification object.
37     //------------------------------------------------------------------
38     lldb::SBFileSpec
39     GetFileSpec ();
40 
41     void
42     SetFileSpec (const lldb::SBFileSpec &fspec);
43 
44     //------------------------------------------------------------------
45     /// Get accessor for the module platform file.
46     ///
47     /// Platform file refers to the path of the module as it is known on
48     /// the remote system on which it is being debugged. For local
49     /// debugging this is always the same as Module::GetFileSpec(). But
50     /// remote debugging might mention a file '/usr/lib/liba.dylib'
51     /// which might be locally downloaded and cached. In this case the
52     /// platform file could be something like:
53     /// '/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib'
54     /// The file could also be cached in a local developer kit directory.
55     ///
56     /// @return
57     ///     A const reference to the file specification object.
58     //------------------------------------------------------------------
59     lldb::SBFileSpec
60     GetPlatformFileSpec ();
61 
62     void
63     SetPlatformFileSpec (const lldb::SBFileSpec &fspec);
64 
65     lldb::SBFileSpec
66     GetSymbolFileSpec ();
67 
68     void
69     SetSymbolFileSpec (const lldb::SBFileSpec &fspec);
70 
71     const char *
72     GetObjectName ();
73 
74     void
75     SetObjectName (const char *name);
76 
77     const char *
78     GetTriple ();
79 
80     void
81     SetTriple (const char *triple);
82 
83     const uint8_t *
84     GetUUIDBytes ();
85 
86     size_t
87     GetUUIDLength ();
88 
89     bool
90     SetUUIDBytes (const uint8_t *uuid, size_t uuid_len);
91 
92     bool
93     GetDescription (lldb::SBStream &description);
94 
95 };
96 
97 
98 class SBModuleSpecList
99 {
100 public:
101     SBModuleSpecList();
102 
103     SBModuleSpecList (const SBModuleSpecList &rhs);
104 
105     ~SBModuleSpecList();
106 
107     static SBModuleSpecList
108     GetModuleSpecifications (const char *path);
109 
110     void
111     Append (const lldb::SBModuleSpec &spec);
112 
113     void
114     Append (const lldb::SBModuleSpecList &spec_list);
115 
116     lldb::SBModuleSpec
117     FindFirstMatchingSpec (const lldb::SBModuleSpec &match_spec);
118 
119     lldb::SBModuleSpecList
120     FindMatchingSpecs (const lldb::SBModuleSpec &match_spec);
121 
122     size_t
123     GetSize();
124 
125     lldb::SBModuleSpec
126     GetSpecAtIndex (size_t i);
127 
128     bool
129     GetDescription (lldb::SBStream &description);
130 
131 };
132 
133 } // namespace lldb
134