blob: 55fd9b1a043de57a69d9bc5fb5b014985c881774 [file] [log] [blame]
Greg Clayton226cce22013-07-08 22:22:41 +00001//===-- 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
10namespace lldb {
11
12class SBModuleSpec
13{
14public:
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
98class SBModuleSpecList
99{
100public:
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