Ejemplo n.º 1
0
/*
** Hardware Single-step Services
*/
int dbg_hard_stp_event_gp()
{
   size_t mn;
   int    rc;

   if(!dbg_hard_stp_enabled())
      return VM_IGNORE;

   debug(DBG_HARD_STP, "sstep #GP event\n");

   __db_show_pending();

   rc = disassemble(&info->vm.cpu.disasm);
   if(rc != VM_DONE)
      return rc;

   mn = info->vm.cpu.disasm.mnemonic;
   switch(mn)
   {
   case UD_Isysenter: return dbg_hard_stp_event_fast_syscall(0);
   case UD_Isysexit:  return dbg_hard_stp_event_fast_syscall(1);
   }

   return VM_IGNORE;
}
Ejemplo n.º 2
0
/*
** Hardware Single-step Services
*/
int dbg_hard_stp_event_gp()
{
   size_t mn;

   if(!dbg_hard_stp_enabled())
      return VM_IGNORE;

   debug(DBG_HARD_STP, "sstep #GP event\n");

   if(!disassemble(&info->vm.cpu.disasm))
      return VM_FAIL;

   mn = info->vm.cpu.disasm.mnemonic;
   switch(mn)
   {
   case UD_Isysenter: return dbg_hard_stp_event_fast_syscall(0);
   case UD_Isysexit:  return dbg_hard_stp_event_fast_syscall(1);
   }

   return VM_IGNORE;
}