]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Support 'INT $3' instruction.
authorJulian Seward <jseward@acm.org>
Wed, 28 Feb 2007 23:31:42 +0000 (23:31 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 28 Feb 2007 23:31:42 +0000 (23:31 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1736

VEX/priv/guest-x86/toIR.c
VEX/priv/host-x86/hdefs.c

index c1580525e8173ebd17a54ae08a7c3fd9782a3b73..7a3acf6b32841f303f6c5a0cf29b981c9f3b9d79 100644 (file)
@@ -11208,6 +11208,12 @@ DisResult disInstr_X86_WRK (
 
    /* ------------------------ INT ------------------------ */
 
+   case 0xCC: /* INT 3 */
+      jmp_lit(Ijk_Trap,((Addr32)guest_EIP_bbstart)+delta);
+      dres.whatNext = Dis_StopHere;
+      DIP("int $0x3\n");
+      break;
+
    case 0xCD: /* INT imm8 */
       d32 = getIByte(delta); delta++;
       if (d32 != 0x80) goto decode_failure;
index a88a03500c5dce727a1ade12feb55c126f68ecc0..9f6157f1a9996efcaa0c9bcff89047b8f5224e85 100644 (file)
@@ -2184,6 +2184,9 @@ Int emit_X86Instr ( UChar* buf, Int nbuf, X86Instr* i,
          case Ijk_Sys_sysenter:
             *p++ = 0xBD;
             p = emit32(p, VEX_TRC_JMP_SYS_SYSENTER); break;
+         case Ijk_Trap:
+            *p++ = 0xBD;
+            p = emit32(p, VEX_TRC_JMP_TRAP); break;
          case Ijk_Ret:
         case Ijk_Call:
          case Ijk_Boring: