]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/bindings/interface/SBModuleSpec.i
Merge ^/head r363989 through r364034.
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / bindings / interface / SBModuleSpec.i
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 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     STRING_EXTENSION(SBModuleSpecList)
132 };
133
134 } // namespace lldb