Module: Duran

Extended by:
FFI::Library
Defined in:
lib/duran.rb,
lib/duran/app.rb,
lib/duran/proc.rb,
lib/duran/tools.rb,
lib/duran/events.rb,
lib/duran/defines.rb,
lib/duran/ir_opnd.rb,
lib/duran/structs.rb,
lib/duran/ir_utils.rb,
lib/duran/ir_opcodes.rb,
lib/duran/structs/operand.rb,
lib/duran/structs/exception.rb,
lib/duran/structs/tracedump.rb,
lib/duran/structs/instruction.rb,
lib/duran/structs/memory_info.rb,
lib/duran/structs/module_data.rb,
lib/duran/structs/signal_info.rb,
lib/duran/structs/module_names.rb,
lib/duran/structs/machine_context.rb,
lib/duran/structs/restore_state_info.rb,
lib/duran/structs/fault_fragment_info.rb

Defined Under Namespace

Classes: DRYStruct, DR_Time, Exception, FaultFragmentInfo, Instruction, MachineContext, MemoryInfo, ModuleData, ModuleNames, Operand, RestoreStateInfo, SignalInfo, TraceDumpStubData, TraceDumpTraceHeader, TracedumpFileHeader

Constant Summary collapse

FILE_READ =
0x1
FILE_WRITE_REQUIRE_NEW =
0x2
FILE_WRITE_APPEND =
0x4
FILE_WRITE_OVERWRITE =
0x8
FILE_ALLOW_LARGE =
0x10
SEEK_SET =
0
SEEK_CUR =
1
SEEK_END =
1
LOG_NONE =

log mask constants

0x00000000
LOG_STATS =

Log no data.

0x00000001
LOG_TOP =

Log per-thread and global statistics.

0x00000002
LOG_THREADS =

Log top-level information.

0x00000004
LOG_SYSCALLS =

Log data related to threads.

0x00000008
LOG_ASYNCH =

Log data related to system calls.

0x00000010
LOG_INTERP =

Log data related to signals/callbacks/etc.

0x00000020
LOG_EMIT =

Log data related to app interpretation.

0x00000040
0x00000080
LOG_CACHE =

Log data related to linking code.

0x00000100
LOG_FRAGMENT =

Log data related to code cache management.

0x00000200
LOG_DISPATCH =

Log data related to app code fragments.

0x00000400
LOG_MONITOR =

Log data on every context switch dispatch.

0x00000800
LOG_HEAP =

Log data related to trace building.

0x00001000
LOG_VMAREAS =

Log data related to memory managment.

0x00002000
LOG_SYNCH =

Log data related to address space regions.

0x00004000
LOG_MEMSTATS =

Log data related to synchronization.

0x00008000
LOG_OPTS =

Log data related to memory statistics.

0x00010000
LOG_SIDELINE =

Log data related to optimizations.

0x00020000
LOG_SYMBOLS =

Log data related to sideline threads.

0x00040000
LOG_RCT =

Log data related to app symbols.

0x00080000
LOG_NT =

Log data related to indirect transfers.

0x00100000
LOG_HOT_PATCHING =

Log data related to Windows Native API.

0x00200000
LOG_HTABLE =

Log data related to hot patching.

0x00400000
LOG_MODULEDB =

Log data related to hash tables.

0x00800000
LOG_ALL =

Log data related to the module database.

0x00ffffff
SPILL_SLOT_MAX =
9
OPCODES =
[
  :INVALID,
  :UNDECODED,
  :CONTD,
  :LABEL,
  :add,
  :or,
  :adc,
  :sbb,
  :and,
  :daa,
  :sub,
  :das,
  :xor,
  :aaa,
  :cmp,
  :aas,
  :inc,
  :dec,
  :push,
  :push_imm,
  :pop,
  :pusha,
  :popa,
  :bound,
  :arpl,
  :imul,
  :jo_short,
  :jno_short,
  :jb_short,
  :jnb_short,
  :jz_short,
  :jnz_short,
  :jbe_short,
  :jnbe_short,
  :js_short,
  :jns_short,
  :jp_short,
  :jnp_short,
  :jl_short,
  :jnl_short,
  :jle_short,
  :jnle_short,
  :call,
  :call_ind,
  :call_far,
  :call_far_ind,
  :jmp,
  :jmp_short,
  :jmp_ind,
  :jmp_far,
  :jmp_far_ind,
  :loopne,
  :loope,
  :loop,
  :jecxz,
  :mov_ld,
  :mov_st,
  :mov_imm,
  :mov_seg,
  :mov_priv,
  :test,
  :lea,
  :xchg,
  :cwde,
  :cdq,
  :fwait,
  :pushf,
  :popf,
  :sahf,
  :lahf,
  :ret,
  :ret_far,
  :les,
  :lds,
  :enter,
  :leave,
  :int3,
  :int,
  :into,
  :iret,
  :aam,
  :aad,
  :xlat,
  :in,
  :out,
  :hlt,
  :cmc,
  :clc,
  :stc,
  :cli,
  :sti,
  :cld,
  :std,
  :lar,
  :lsl,
  :syscall,
  :clts,
  :sysret,
  :invd,
  :wbinvd,
  :ud2a,
  :nop_modrm,
  :movntps,
  :movntpd,
  :wrmsr,
  :rdtsc,
  :rdmsr,
  :rdpmc,
  :sysenter,
  :sysexit,
  :cmovo,
  :cmovno,
  :cmovb,
  :cmovnb,
  :cmovz,
  :cmovnz,
  :cmovbe,
  :cmovnbe,
  :cmovs,
  :cmovns,
  :cmovp,
  :cmovnp,
  :cmovl,
  :cmovnl,
  :cmovle,
  :cmovnle,
  :punpcklbw,
  :punpcklwd,
  :punpckldq,
  :packsswb,
  :pcmpgtb,
  :pcmpgtw,
  :pcmpgtd,
  :packuswb,
  :punpckhbw,
  :punpckhwd,
  :punpckhdq,
  :packssdw,
  :punpcklqdq,
  :punpckhqdq,
  :movd,
  :movq,
  :movdqu,
  :movdqa,
  :pshufw,
  :pshufd,
  :pshufhw,
  :pshuflw,
  :pcmpeqb,
  :pcmpeqw,
  :pcmpeqd,
  :emms,
  :jo,
  :jno,
  :jb,
  :jnb,
  :jz,
  :jnz,
  :jbe,
  :jnbe,
  :js,
  :jns,
  :jp,
  :jnp,
  :jl,
  :jnl,
  :jle,
  :jnle,
  :seto,
  :setno,
  :setb,
  :setnb,
  :setz,
  :setnz,
  :setbe,
  :setnbe,
  :sets,
  :setns,
  :setp,
  :setnp,
  :setl,
  :setnl,
  :setle,
  :setnle,
  :cpuid,
  :bt,
  :shld,
  :rsm,
  :bts,
  :shrd,
  :cmpxchg,
  :lss,
  :btr,
  :lfs,
  :lgs,
  :movzx,
  :ud2b,
  :btc,
  :bsf,
  :bsr,
  :movsx,
  :xadd,
  :movnti,
  :pinsrw,
  :pextrw,
  :bswap,
  :psrlw,
  :psrld,
  :psrlq,
  :paddq,
  :pmullw,
  :pmovmskb,
  :psubusb,
  :psubusw,
  :pminub,
  :pand,
  :paddusb,
  :paddusw,
  :pmaxub,
  :pandn,
  :pavgb,
  :psraw,
  :psrad,
  :pavgw,
  :pmulhuw,
  :pmulhw,
  :movntq,
  :movntdq,
  :psubsb,
  :psubsw,
  :pminsw,
  :por,
  :paddsb,
  :paddsw,
  :pmaxsw,
  :pxor,
  :psllw,
  :pslld,
  :psllq,
  :pmuludq,
  :pmaddwd,
  :psadbw,
  :maskmovq,
  :maskmovdqu,
  :psubb,
  :psubw,
  :psubd,
  :psubq,
  :paddb,
  :paddw,
  :paddd,
  :psrldq,
  :pslldq,
  :rol,
  :ror,
  :rcl,
  :rcr,
  :shl,
  :shr,
  :sar,
  :not,
  :neg,
  :mul,
  :div,
  :idiv,
  :sldt,
  :str,
  :lldt,
  :ltr,
  :verr,
  :verw,
  :sgdt,
  :sidt,
  :lgdt,
  :lidt,
  :smsw,
  :lmsw,
  :invlpg,
  :cmpxchg8b,
  :fxsave,
  :fxrstor,
  :ldmxcsr,
  :stmxcsr,
  :lfence,
  :mfence,
  :clflush,
  :sfence,
  :prefetchnta,
  :prefetcht0,
  :prefetcht1,
  :prefetcht2,
  :prefetch,
  :prefetchw,
  :movups,
  :movss,
  :movupd,
  :movsd,
  :movlps,
  :movlpd,
  :unpcklps,
  :unpcklpd,
  :unpckhps,
  :unpckhpd,
  :movhps,
  :movhpd,
  :movaps,
  :movapd,
  :cvtpi2ps,
  :cvtsi2ss,
  :cvtpi2pd,
  :cvtsi2sd,
  :cvttps2pi,
  :cvttss2si,
  :cvttpd2pi,
  :cvttsd2si,
  :cvtps2pi,
  :cvtss2si,
  :cvtpd2pi,
  :cvtsd2si,
  :ucomiss,
  :ucomisd,
  :comiss,
  :comisd,
  :movmskps,
  :movmskpd,
  :sqrtps,
  :sqrtss,
  :sqrtpd,
  :sqrtsd,
  :rsqrtps,
  :rsqrtss,
  :rcpps,
  :rcpss,
  :andps,
  :andpd,
  :andnps,
  :andnpd,
  :orps,
  :orpd,
  :xorps,
  :xorpd,
  :addps,
  :addss,
  :addpd,
  :addsd,
  :mulps,
  :mulss,
  :mulpd,
  :mulsd,
  :cvtps2pd,
  :cvtss2sd,
  :cvtpd2ps,
  :cvtsd2ss,
  :cvtdq2ps,
  :cvttps2dq,
  :cvtps2dq,
  :subps,
  :subss,
  :subpd,
  :subsd,
  :minps,
  :minss,
  :minpd,
  :minsd,
  :divps,
  :divss,
  :divpd,
  :divsd,
  :maxps,
  :maxss,
  :maxpd,
  :maxsd,
  :cmpps,
  :cmpss,
  :cmppd,
  :cmpsd,
  :shufps,
  :shufpd,
  :cvtdq2pd,
  :cvttpd2dq,
  :cvtpd2dq,
  :nop,
  :pause,
  :ins,
  :rep_ins,
  :outs,
  :rep_outs,
  :movs,
  :rep_movs,
  :stos,
  :rep_stos,
  :lods,
  :rep_lods,
  :cmps,
  :rep_cmps,
  :repne_cmps,
  :scas,
  :rep_scas,
  :repne_scas,
  :fadd,
  :fmul,
  :fcom,
  :fcomp,
  :fsub,
  :fsubr,
  :fdiv,
  :fdivr,
  :fld,
  :fst,
  :fstp,
  :fldenv,
  :fldcw,
  :fnstenv,
  :fnstcw,
  :fiadd,
  :fimul,
  :ficom,
  :ficomp,
  :fisub,
  :fisubr,
  :fidiv,
  :fidivr,
  :fild,
  :fist,
  :fistp,
  :frstor,
  :fnsave,
  :fnstsw,
  :fbld,
  :fbstp,
  :fxch,
  :fnop,
  :fchs,
  :fabs,
  :ftst,
  :fxam,
  :fld1,
  :fldl2t,
  :fldl2e,
  :fldpi,
  :fldlg2,
  :fldln2,
  :fldz,
  :f2xm1,
  :fyl2x,
  :fptan,
  :fpatan,
  :fxtract,
  :fprem1,
  :fdecstp,
  :fincstp,
  :fprem,
  :fyl2xp1,
  :fsqrt,
  :fsincos,
  :frndint,
  :fscale,
  :fsin,
  :fcos,
  :fcmovb,
  :fcmove,
  :fcmovbe,
  :fcmovu,
  :fucompp,
  :fcmovnb,
  :fcmovene,
  :fcmovnbe,
  :fcmovnu,
  :fnclex,
  :fninit,
  :fucomi,
  :fcomi,
  :ffree,
  :fucom,
  :fucomp,
  :faddp,
  :fmulp,
  :fcompp,
  :fsubrp,
  :fsubp,
  :fdivrp,
  :fdivp,
  :fucomip,
  :fcomip,
  :fisttp,
  :haddpd,
  :haddps,
  :hsubpd,
  :hsubps,
  :addsubpd,
  :addsubps,
  :lddqu,
  :monitor,
  :mwait,
  :movsldup,
  :movshdup,
  :movddup,
  :femms,
  :unknown_3dnow,
  :pavgusb,
  :pfadd,
  :pfacc,
  :pfcmpge,
  :pfcmpgt,
  :pfcmpeq,
  :pfmin,
  :pfmax,
  :pfmul,
  :pfrcp,
  :pfrcpit1,
  :pfrcpit2,
  :pfrsqrt,
  :pfrsqit1,
  :pmulhrw,
  :pfsub,
  :pfsubr,
  :pi2fd,
  :pf2id,
  :pi2fw,
  :pf2iw,
  :pfnacc,
  :pfpnacc,
  :pswapd,
  :pshufb,
  :phaddw,
  :phaddd,
  :phaddsw,
  :pmaddubsw,
  :phsubw,
  :phsubd,
  :phsubsw,
  :psignb,
  :psignw,
  :psignd,
  :pmulhrsw,
  :pabsb,
  :pabsw,
  :pabsd,
  :palignr,
  :popcnt,
  :movntss,
  :movntsd,
  :extrq,
  :insertq,
  :lzcnt,
  :pblendvb,
  :blendvps,
  :blendvpd,
  :ptest,
  :pmovsxbw,
  :pmovsxbd,
  :pmovsxbq,
  :pmovsxdw,
  :pmovsxwq,
  :pmovsxdq,
  :pmuldq,
  :pcmpeqq,
  :movntdqa,
  :packusdw,
  :pmovzxbw,
  :pmovzxbd,
  :pmovzxbq,
  :pmovzxdw,
  :pmovzxwq,
  :pmovzxdq,
  :pcmpgtq,
  :pminsb,
  :pminsd,
  :pminuw,
  :pminud,
  :pmaxsb,
  :pmaxsd,
  :pmaxuw,
  :pmaxud,
  :pmulld,
  :phminposuw,
  :crc32,
  :pextrb,
  :pextrd,
  :extractps,
  :roundps,
  :roundpd,
  :roundss,
  :roundsd,
  :blendps,
  :blendpd,
  :pblendw,
  :pinsrb,
  :insertps,
  :pinsrd,
  :dpps,
  :dppd,
  :mpsadbw,
  :pcmpestrm,
  :pcmpestri,
  :pcmpistrm,
  :pcmpistri,
  :movsxd,
  :swapgs,
  :vmcall,
  :vmlaunch,
  :vmresume,
  :vmxoff,
  :vmptrst,
  :vmptrld,
  :vmxon,
  :vmclear,
  :vmread,
  :vmwrite,
  :int1,
  :salc,
  :ffreep,
]