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