1 //===-- SWIG Interface for SBModule -----------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 namespace lldb {
10 
11 class SBModuleSpec
12 {
13 public:
14 
15     SBModuleSpec ();
16 
17     SBModuleSpec (const lldb::SBModuleSpec &rhs);
18 
19     ~SBModuleSpec ();
20 
21     bool
22     IsValid () const;
23 
24     explicit operator bool() const;
25 
26     void
27     Clear();
28 
29     %feature("docstring", "
30     Get const accessor for the module file.
31 
32     This function returns the file for the module on the host system
33     that is running LLDB. This can differ from the path on the
34     platform since we might be doing remote debugging.
35 
36     @return
37         A const reference to the file specification object.") GetFileSpec;
38     lldb::SBFileSpec
39     GetFileSpec ();
40 
41     void
42     SetFileSpec (const lldb::SBFileSpec &fspec);
43 
44     %feature("docstring", "
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.") GetPlatformFileSpec;
58     lldb::SBFileSpec
59     GetPlatformFileSpec ();
60 
61     void
62     SetPlatformFileSpec (const lldb::SBFileSpec &fspec);
63 
64     lldb::SBFileSpec
65     GetSymbolFileSpec ();
66 
67     void
68     SetSymbolFileSpec (const lldb::SBFileSpec &fspec);
69 
70     const char *
71     GetObjectName ();
72 
73     void
74     SetObjectName (const char *name);
75 
76     const char *
77     GetTriple ();
78 
79     void
80     SetTriple (const char *triple);
81 
82     const uint8_t *
83     GetUUIDBytes ();
84 
85     size_t
86     GetUUIDLength ();
87 
88     bool
89     SetUUIDBytes (const uint8_t *uuid, size_t uuid_len);
90 
91     bool
92     GetDescription (lldb::SBStream &description);
93 
94     STRING_EXTENSION(SBModuleSpec)
95 };
96 
97 
98 %feature("docstring",
99 "Represents a list of :py:class:`SBModuleSpec`."
100 ) SBModuleSpecList;
101 class SBModuleSpecList
102 {
103 public:
104     SBModuleSpecList();
105 
106     SBModuleSpecList (const SBModuleSpecList &rhs);
107 
108     ~SBModuleSpecList();
109 
110     static SBModuleSpecList
111     GetModuleSpecifications (const char *path);
112 
113     void
114     Append (const lldb::SBModuleSpec &spec);
115 
116     void
117     Append (const lldb::SBModuleSpecList &spec_list);
118 
119     lldb::SBModuleSpec
120     FindFirstMatchingSpec (const lldb::SBModuleSpec &match_spec);
121 
122     lldb::SBModuleSpecList
123     FindMatchingSpecs (const lldb::SBModuleSpec &match_spec);
124 
125     size_t
126     GetSize();
127 
128     lldb::SBModuleSpec
129     GetSpecAtIndex (size_t i);
130 
131     bool
132     GetDescription (lldb::SBStream &description);
133 
134     STRING_EXTENSION(SBModuleSpecList)
135 };
136 
137 } // namespace lldb
138