Home | History | Annotate | Download | only in interface
      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
    134