コード例 #1
0
ファイル: debug_core.c プロジェクト: dancrossnyc/harvey
/*
 * Weak aliases for breakpoint management,
 * can be overriden by architectures when needed:
 */
char *
arch_set_breakpoint(GdbState *ks, struct bkpt *bpt)
{
	char *err;

	err = rmem(bpt->saved_instr, ks->threadid, bpt->bpt_addr, machdata->bpsize);
	if (err)
		return err;

	err = wmem(bpt->bpt_addr, ks->threadid, machdata->bpinst, machdata->bpsize);
	return err;
}
コード例 #2
0
ファイル: brain.c プロジェクト: mikaelangman/grupp2robot
/*
 * Marks all unvisited squares as wall.
 * This is used for marking all tiles outside of the enclosed area as wall.
 */
void mark_walls(){

	uint8_t i;
	uint8_t j;

	for(i = 1; i < 31; i++){
		for(j = 1; j < 31; j++){
			if(visited[i][j] == 0){
				wmem(WALL,i,j);
			}			
		}
	}	
}
コード例 #3
0
ファイル: VirtualCPU.cpp プロジェクト: validus77/Synacor_VM
std::uint16_t VirtualCPU::executeInstructionAtAddress(std::uint16_t address) {
  debugger_.pc_  = address; //HACK FOR NOW
    switch (memoryController_.readAtAddress(address)) {
        case 0:
            return address + halt();
        case 1:
            return address + set(memoryController_.readAtAddress(address + 1), memoryController_.readAtAddress(address + 2));
        case 2:
            return address + push(memoryController_.readAtAddress(address + 1));
        case 3:
            return address + pop(memoryController_.readAtAddress(address + 1));
        case 4:
            return address +
                    eq(memoryController_.readAtAddress(address + 1),
                       memoryController_.readAtAddress(address + 2),
                       memoryController_.readAtAddress(address + 3));
        case 5:
            return address + gt(memoryController_.readAtAddress(address + 1),
                                memoryController_.readAtAddress(address +2),
                                memoryController_.readAtAddress(address + 3));
        case 6:
            return jump(memoryController_.readAtAddress(address + 1), address);
        case 7:
            return jt(memoryController_.readAtAddress(address + 1),
                                memoryController_.readAtAddress(address + 2),
                                address);
        case 8:
            return jf(memoryController_.readAtAddress(address + 1),
                                memoryController_.readAtAddress(address + 2),
                                address);
        case 9:
            return address + add(memoryController_.readAtAddress(address + 1),
                                 memoryController_.readAtAddress(address + 2),
                                 memoryController_.readAtAddress(address + 3));
        case 10:
            return address + mult(memoryController_.readAtAddress(address + 1),
                                 memoryController_.readAtAddress(address + 2),
                                 memoryController_.readAtAddress(address + 3));
        case 11:
            return address + mod(memoryController_.readAtAddress(address + 1),
                                  memoryController_.readAtAddress(address + 2),
                                  memoryController_.readAtAddress(address + 3));
        case 12:
            return address + and_i(memoryController_.readAtAddress(address + 1),
                                 memoryController_.readAtAddress(address + 2),
                                 memoryController_.readAtAddress(address + 3));
        case 13:
            return address + or_i(memoryController_.readAtAddress(address + 1),
                                 memoryController_.readAtAddress(address + 2),
                                 memoryController_.readAtAddress(address + 3));
        case 14:
            return address + not_i(memoryController_.readAtAddress(address + 1),
                                 memoryController_.readAtAddress(address + 2));
        case 15:
            return address + rmem(memoryController_.readAtAddress(address + 1),
                                 memoryController_.readAtAddress(address + 2));
        case 16:
            return address + wmem(memoryController_.readAtAddress(address + 1),
                                  memoryController_.readAtAddress(address + 2));
        case 17:
            return call(memoryController_.readAtAddress(address + 1), address);
        case 18:
            return ret();
        case 19:
            return address + out(memoryController_.readAtAddress(address + 1));
        case 21:
            return address + noop();
        case 20:
            return address + in(memoryController_.readAtAddress(address + 1));
        default:
            std::cout << "CPU ERROR illegal op code: " << memoryController_.readAtAddress(address) << std::endl;
            return address + 1;
    }
}
コード例 #4
0
ファイル: debug_core.c プロジェクト: dancrossnyc/harvey
char *
arch_remove_breakpoint(GdbState *ks, struct bkpt *bpt)
{
	return wmem(bpt->bpt_addr, ks->threadid, bpt->saved_instr, machdata->bpsize);
}