SBInstructionList.i revision b44dc564f8e63adff462db6caac4cb99924bcc29
15cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen//===-- SWIG Interface for SBInstructionList --------------------*- C++ -*-===//
25cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen//
35cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen//                     The LLVM Compiler Infrastructure
45cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen//
55cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen// This file is distributed under the University of Illinois Open Source
65cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen// License. See LICENSE.TXT for details.
75cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen//
85cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen//===----------------------------------------------------------------------===//
95cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
105cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen#include <stdio.h>
115cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
125cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chennamespace lldb {
135cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
14b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen%feature("docstring",
15b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen"Represents a list of machine instructions.  SBFunction and SBSymbol have
16b44dc564f8e63adff462db6caac4cb99924bcc29Johnny ChenGetInstructions() methods which return SBInstructionList instances.
17b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen
18b44dc564f8e63adff462db6caac4cb99924bcc29Johnny ChenSBInstructionList supports instruction (SBInstruction instance) iteration.
19b44dc564f8e63adff462db6caac4cb99924bcc29Johnny ChenFor example (see also SBDebugger for a more complete example),
20b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen
21b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chendef disassemble_instructions (insts):
22b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen    for i in insts:
23b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen        print i
24b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen
25b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chendefines a method which takes an SBInstructionList instance and prints out
26b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chenthe machine instructions in assembly format."
27b44dc564f8e63adff462db6caac4cb99924bcc29Johnny Chen) SBInstructionList;
285cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chenclass SBInstructionList
295cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen{
305cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chenpublic:
315cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
325cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    SBInstructionList ();
335cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
345cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    SBInstructionList (const SBInstructionList &rhs);
355cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
365cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    ~SBInstructionList ();
375cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
385cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    bool
395cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    IsValid () const;
405cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
415cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    size_t
425cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    GetSize ();
435cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
445cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    lldb::SBInstruction
455cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    GetInstructionAtIndex (uint32_t idx);
465cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
475cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    void
485cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    Clear ();
495cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
505cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    void
515cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    AppendInstruction (lldb::SBInstruction inst);
525cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
535cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    void
545cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    Print (FILE *out);
555cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
565cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    bool
575cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    GetDescription (lldb::SBStream &description);
585cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
595cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    bool
605cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen    DumpEmulationForAllInstructions (const char *triple);
615cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen};
625cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen
635cb6cab6395a896ec5938acc0885858b8e2ba2c8Johnny Chen} // namespace lldb
64