Class: Ragweed::Wraposx::ThreadContext::Debug64

Inherits:
FFI::Struct
  • Object
show all
Includes:
FFIStructInclude
Defined in:
lib/ragweed/wraposx/thread_context.rb

Overview

_STRUCT_X86_DEBUG_STATE64

__uint64_t      dr0;
__uint64_t      dr1;
__uint64_t      dr2;
__uint64_t      dr3;
__uint64_t      dr4;
__uint64_t      dr5;
__uint64_t      dr6;
__uint64_t      dr7;

;

Constant Summary collapse

FLAVOR =
11

Instance Method Summary collapse

Methods included from FFIStructInclude

#method_missing, #methods, #respond_to?

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Ragweed::FFIStructInclude

Instance Method Details

#dump(&block) ⇒ Object



433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
# File 'lib/ragweed/wraposx/thread_context.rb', line 433

def dump(&block)
  maybe_hex = lambda {|a| begin; "\n" + (" " * 9) + block.call(a, 16).hexdump(true)[10..-2]; rescue; ""; end }
  maybe_dis = lambda {|a| begin; "\n" + block.call(a, 16).distorm.map {|i| "         " + i.mnem}.join("\n"); rescue; ""; end }

  string ="  -----------------------------------------------------------------------\n  CONTEXT:\n  DR0: \#{self.dr0.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr0)}\n  DR1: \#{self.dr1.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr1)}\n  DR2: \#{self.dr2.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr2)}\n  DR3: \#{self.dr3.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr3)}\n  DR4: \#{self.dr4.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr4)}\n  DR5: \#{self.dr5.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr5)}\n  DR6: \#{self.dr6.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr6)}\n  DR7: \#{self.dr7.to_s(16).rjust(16, \"0\")} \#{maybe_hex.call(self.dr7)}\n"
end