Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

ILDisassembler Class Reference

#include <ildis.h>

Inheritance diagram for ILDisassembler:

Disassembler Object List of all members.

Public Member Functions

 ILDisassembler (char *(*string_func)(dword string_ofs, void *context), char *(*token_func)(dword token, void *context), void *context)
virtual ~ILDisassembler ()
virtual dis_insndecode (byte *code, int maxlen, CPU_ADDR addr)
virtual dis_insnduplicateInsn (dis_insn *disasm_insn)
virtual void getOpcodeMetrics (int &min_length, int &max_length, int &min_look_ahead, int &avg_look_ahead, int &addr_align)
virtual byte getSize (dis_insn *disasm_insn)
virtual char * getName ()
virtual char * str (dis_insn *disasm_insn, int style)
virtual char * strf (dis_insn *disasm_insn, int style, char *format)
virtual OBJECT_ID object_id () const
virtual bool validInsn (dis_insn *disasm_insn)

Protected Attributes

char insnstr [256]
ILDisInsn insn
void * context
char *(* string_func )(dword string_ofs, void *context)
char *(* token_func )(dword token, void *context)

Constructor & Destructor Documentation

ILDisassembler::ILDisassembler char *(*  string_func)(dword string_ofs, void *context),
char *(*  token_func)(dword token, void *context),
void *  context
 

Definition at line 30 of file ildis.cc.

References string_func, and token_func.

ILDisassembler::~ILDisassembler  )  [virtual]
 

Definition at line 37 of file ildis.cc.


Member Function Documentation

dis_insn * ILDisassembler::decode byte *  code,
int  maxlen,
CPU_ADDR  addr
[virtual]
 

Implements Disassembler.

Definition at line 41 of file ildis.cc.

References CPU_ADDR::addr32, byte, create_host_int(), ILDisInsn::data, dis_insn, IL_OPCODE_ARGS_CALL, IL_OPCODE_ARGS_CALLVIRT, IL_OPCODE_ARGS_INT16, IL_OPCODE_ARGS_INT32, IL_OPCODE_ARGS_INT8, IL_OPCODE_ARGS_INVALID, IL_OPCODE_ARGS_LONG_JUMP, IL_OPCODE_ARGS_NEW, IL_OPCODE_ARGS_NONE, IL_OPCODE_ARGS_PREFIX, IL_OPCODE_ARGS_SHORT_ARG, IL_OPCODE_ARGS_SHORT_JUMP, IL_OPCODE_ARGS_SHORT_VAR, IL_OPCODE_ARGS_STRING, IL_OPCODE_ARGS_TOKEN, IL_OPCODE_ARGS_UINT16, IL_OPCODE_ARGS_UINT8, il_opcode_table, il_prefix_opcode_table, insn, little_endian, MAX_IL_OPCODE_PREFIX, NULL, ILOpcodeTabEntry::op, ILDisInsn::op, ILDisInsn::opcode, ILDisInsn::prefix, ILOpcodeTabEntry::size, ILDisInsn::size, ILDisInsn::valid, and word.

dis_insn * ILDisassembler::duplicateInsn dis_insn disasm_insn  )  [virtual]
 

Implements Disassembler.

Definition at line 118 of file ildis.cc.

References dis_insn, insn, and malloc().

char * ILDisassembler::getName  )  [virtual]
 

Implements Disassembler.

Definition at line 140 of file ildis.cc.

void ILDisassembler::getOpcodeMetrics int &  min_length,
int &  max_length,
int &  min_look_ahead,
int &  avg_look_ahead,
int &  addr_align
[virtual]
 

Implements Disassembler.

Definition at line 125 of file ildis.cc.

byte ILDisassembler::getSize dis_insn disasm_insn  )  [virtual]
 

Implements Disassembler.

Definition at line 135 of file ildis.cc.

References byte, and dis_insn.

OBJECT_ID ILDisassembler::object_id  )  const [virtual]
 

Returns:
unique object id.

Reimplemented from Object.

Definition at line 239 of file ildis.cc.

char * ILDisassembler::str dis_insn disasm_insn,
int  style
[virtual]
 

Reimplemented from Disassembler.

Definition at line 145 of file ildis.cc.

References dis_insn, and strf().

Referenced by strf().

char * ILDisassembler::strf dis_insn disasm_insn,
int  style,
char *  format
[virtual]
 

Implements Disassembler.

Definition at line 150 of file ildis.cc.

References CPU_ADDR::addr32, addr_sym_func, addr_sym_func_context, dis_insn, DIS_STYLE_HIGHLIGHT, Disassembler::disable_highlighting(), dword, e_cs_number, e_cs_string, Disassembler::enable_highlighting(), Disassembler::get_cs(), IL_META_TOKEN_MASK, IL_META_TOKEN_STRING, IL_OPCODE_ARGS_CALL, IL_OPCODE_ARGS_CALLI, IL_OPCODE_ARGS_CALLVIRT, IL_OPCODE_ARGS_INT32, IL_OPCODE_ARGS_INT8, IL_OPCODE_ARGS_LONG_JUMP, IL_OPCODE_ARGS_NEW, IL_OPCODE_ARGS_NONE, IL_OPCODE_ARGS_SHORT_ARG, IL_OPCODE_ARGS_SHORT_JUMP, IL_OPCODE_ARGS_SHORT_VAR, IL_OPCODE_ARGS_STRING, IL_OPCODE_ARGS_TOKEN, IL_OPCODE_ARGS_UINT8, insnstr, NULL, str(), string_func, and token_func.

Referenced by str().

bool ILDisassembler::validInsn dis_insn disasm_insn  )  [virtual]
 

Implements Disassembler.

Definition at line 245 of file ildis.cc.

References dis_insn.


Member Data Documentation

void* ILDisassembler::context [protected]
 

Definition at line 46 of file ildis.h.

ILDisInsn ILDisassembler::insn [protected]
 

Definition at line 45 of file ildis.h.

Referenced by decode(), and duplicateInsn().

char ILDisassembler::insnstr[256] [protected]
 

Definition at line 44 of file ildis.h.

Referenced by strf().

char*(* ILDisassembler::string_func)(dword string_ofs, void *context) [protected]
 

Referenced by ILDisassembler(), and strf().

char*(* ILDisassembler::token_func)(dword token, void *context) [protected]
 

Referenced by ILDisassembler(), and strf().


The documentation for this class was generated from the following files:
Generated on Fri May 7 21:16:06 2004 by doxygen 1.3.5