]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - scripts/interface/SBModuleSpec.i
Vendor import of lldb trunk r256945:
[FreeBSD/FreeBSD.git] / scripts / interface / SBModuleSpec.i
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