xref: /openbsd-src/gnu/llvm/lldb/bindings/interface/SBModuleSpec.i (revision be691f3bb6417f04a68938fadbcaee2d5795e764)
1061da546Spatrick //===-- SWIG Interface for SBModule -----------------------------*- C++ -*-===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick 
9061da546Spatrick namespace lldb {
10061da546Spatrick 
11061da546Spatrick class SBModuleSpec
12061da546Spatrick {
13061da546Spatrick public:
14061da546Spatrick 
15061da546Spatrick     SBModuleSpec ();
16061da546Spatrick 
17061da546Spatrick     SBModuleSpec (const lldb::SBModuleSpec &rhs);
18061da546Spatrick 
19061da546Spatrick     ~SBModuleSpec ();
20061da546Spatrick 
21061da546Spatrick     bool
22061da546Spatrick     IsValid () const;
23061da546Spatrick 
24061da546Spatrick     explicit operator bool() const;
25061da546Spatrick 
26061da546Spatrick     void
27061da546Spatrick     Clear();
28061da546Spatrick 
29061da546Spatrick     %feature("docstring", "
30061da546Spatrick     Get const accessor for the module file.
31061da546Spatrick 
32061da546Spatrick     This function returns the file for the module on the host system
33061da546Spatrick     that is running LLDB. This can differ from the path on the
34061da546Spatrick     platform since we might be doing remote debugging.
35061da546Spatrick 
36061da546Spatrick     @return
37061da546Spatrick         A const reference to the file specification object.") GetFileSpec;
38061da546Spatrick     lldb::SBFileSpec
39061da546Spatrick     GetFileSpec ();
40061da546Spatrick 
41061da546Spatrick     void
42061da546Spatrick     SetFileSpec (const lldb::SBFileSpec &fspec);
43061da546Spatrick 
44061da546Spatrick     %feature("docstring", "
45061da546Spatrick     Get accessor for the module platform file.
46061da546Spatrick 
47061da546Spatrick     Platform file refers to the path of the module as it is known on
48061da546Spatrick     the remote system on which it is being debugged. For local
49061da546Spatrick     debugging this is always the same as Module::GetFileSpec(). But
50061da546Spatrick     remote debugging might mention a file '/usr/lib/liba.dylib'
51061da546Spatrick     which might be locally downloaded and cached. In this case the
52061da546Spatrick     platform file could be something like:
53061da546Spatrick     '/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib'
54061da546Spatrick     The file could also be cached in a local developer kit directory.
55061da546Spatrick 
56061da546Spatrick     @return
57061da546Spatrick         A const reference to the file specification object.") GetPlatformFileSpec;
58061da546Spatrick     lldb::SBFileSpec
59061da546Spatrick     GetPlatformFileSpec ();
60061da546Spatrick 
61061da546Spatrick     void
62061da546Spatrick     SetPlatformFileSpec (const lldb::SBFileSpec &fspec);
63061da546Spatrick 
64061da546Spatrick     lldb::SBFileSpec
65061da546Spatrick     GetSymbolFileSpec ();
66061da546Spatrick 
67061da546Spatrick     void
68061da546Spatrick     SetSymbolFileSpec (const lldb::SBFileSpec &fspec);
69061da546Spatrick 
70061da546Spatrick     const char *
71061da546Spatrick     GetObjectName ();
72061da546Spatrick 
73061da546Spatrick     void
74061da546Spatrick     SetObjectName (const char *name);
75061da546Spatrick 
76061da546Spatrick     const char *
77061da546Spatrick     GetTriple ();
78061da546Spatrick 
79061da546Spatrick     void
80061da546Spatrick     SetTriple (const char *triple);
81061da546Spatrick 
82061da546Spatrick     const uint8_t *
83061da546Spatrick     GetUUIDBytes ();
84061da546Spatrick 
85061da546Spatrick     size_t
86061da546Spatrick     GetUUIDLength ();
87061da546Spatrick 
88061da546Spatrick     bool
89061da546Spatrick     SetUUIDBytes (const uint8_t *uuid, size_t uuid_len);
90061da546Spatrick 
91061da546Spatrick     bool
92061da546Spatrick     GetDescription (lldb::SBStream &description);
93061da546Spatrick 
94061da546Spatrick     STRING_EXTENSION(SBModuleSpec)
95061da546Spatrick };
96061da546Spatrick 
97061da546Spatrick 
98*be691f3bSpatrick %feature("docstring",
99*be691f3bSpatrick "Represents a list of :py:class:`SBModuleSpec`."
100*be691f3bSpatrick ) SBModuleSpecList;
101061da546Spatrick class SBModuleSpecList
102061da546Spatrick {
103061da546Spatrick public:
104061da546Spatrick     SBModuleSpecList();
105061da546Spatrick 
106061da546Spatrick     SBModuleSpecList (const SBModuleSpecList &rhs);
107061da546Spatrick 
108061da546Spatrick     ~SBModuleSpecList();
109061da546Spatrick 
110061da546Spatrick     static SBModuleSpecList
111061da546Spatrick     GetModuleSpecifications (const char *path);
112061da546Spatrick 
113061da546Spatrick     void
114061da546Spatrick     Append (const lldb::SBModuleSpec &spec);
115061da546Spatrick 
116061da546Spatrick     void
117061da546Spatrick     Append (const lldb::SBModuleSpecList &spec_list);
118061da546Spatrick 
119061da546Spatrick     lldb::SBModuleSpec
120061da546Spatrick     FindFirstMatchingSpec (const lldb::SBModuleSpec &match_spec);
121061da546Spatrick 
122061da546Spatrick     lldb::SBModuleSpecList
123061da546Spatrick     FindMatchingSpecs (const lldb::SBModuleSpec &match_spec);
124061da546Spatrick 
125061da546Spatrick     size_t
126061da546Spatrick     GetSize();
127061da546Spatrick 
128061da546Spatrick     lldb::SBModuleSpec
129061da546Spatrick     GetSpecAtIndex (size_t i);
130061da546Spatrick 
131061da546Spatrick     bool
132061da546Spatrick     GetDescription (lldb::SBStream &description);
133061da546Spatrick 
134061da546Spatrick     STRING_EXTENSION(SBModuleSpecList)
135061da546Spatrick };
136061da546Spatrick 
137061da546Spatrick } // namespace lldb
138