static void set_hotkey_break( TSF32 FarPtr client ) { client = find_user_code( client ); D32DebugBreakOp( &hotkey_opcode ); D32DebugSetBreak( client->eip, client->cs, 0, &hotkey_opcode, &saved_opcode ); hotkey_hit = 1; #ifdef DEBUGHOTKEY outs( "hotkey break set\r\n" ); #endif }
unsigned ReqClear_break() { clear_break_req *acc; char dummy; acc = GetInPtr( 0 ); _DBG1(( "AccRestoreBreak\n" )); /* assume all breaks removed at same time */ D32DebugSetBreak( acc->break_addr.offset, acc->break_addr.segment, FALSE, (byte *)&acc->old, &dummy ); return( 0 ); }
unsigned ReqSet_break() { set_break_req *acc; set_break_ret *ret; _DBG1(( "AccSetBreak\n" )); acc = GetInPtr( 0 ); ret = GetOutPtr( 0 ); D32DebugSetBreak( acc->break_addr.offset, acc->break_addr.segment, FALSE, &Break, (byte *)&ret->old ); return( sizeof( *ret ) ); }
static void check_hotkey( int eip_mod, TSF32 FarPtr client ) { if( hotkey_hit ) { hotkey_hit = 0; #ifdef DEBUGHOTKEY outs( "hotkey seen " ); outi( FP_OFF( client ) ); outi( client->cs ); outi( (int)client->eip ); outs( "\r\n" ); #endif D32DebugSetBreak( client->eip + eip_mod, client->cs, 0, &saved_opcode, &hotkey_opcode ); client->int_id = hotkey_int; /* Attribute to Hotkey */ } }