SBInstructionList.h revision 7dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2
1//===-- SBInstructionList.h -------------------------------------*- 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#ifndef LLDB_SBInstructionList_h_
11#define LLDB_SBInstructionList_h_
12
13#include "lldb/API/SBDefines.h"
14
15#include <stdio.h>
16
17namespace lldb {
18
19class SBInstructionList
20{
21public:
22
23    SBInstructionList ();
24
25    SBInstructionList (const SBInstructionList &rhs);
26
27    const SBInstructionList &
28    operator = (const SBInstructionList &rhs);
29
30    ~SBInstructionList ();
31
32    bool
33    IsValid () const;
34
35    size_t
36    GetSize ();
37
38    lldb::SBInstruction
39    GetInstructionAtIndex (uint32_t idx);
40
41    void
42    Clear ();
43
44    void
45    AppendInstruction (lldb::SBInstruction inst);
46
47    void
48    Print (FILE *out);
49
50    bool
51    GetDescription (lldb::SBStream &description);
52
53    bool
54    DumpEmulationForAllInstructions (const char *triple);
55
56protected:
57    friend class SBFunction;
58    friend class SBSymbol;
59    friend class SBTarget;
60
61    void
62    SetDisassembler (const lldb::DisassemblerSP &opaque_sp);
63
64private:
65    lldb::DisassemblerSP m_opaque_sp;
66};
67
68
69} // namespace lldb
70
71#endif // LLDB_SBInstructionList_h_
72