Exemplo n.º 1
0
void watch_event_mem_r(u16 addr) {
    if (in_debug_scope()) {
        return;
    }

    int wp;
    for (wp = 0; wp < watchpoint_cursor; wp++) {
        if (!watchpoint_enabled[wp]) {
            continue;
        }

        switch (watchpoints[wp].type) {
            case WATCHPOINT_MEM_RW:
            case WATCHPOINT_MEM_R:
                if (watchpoints[wp].mem.begin <= addr && watchpoints[wp].mem.end >= addr) {
                    printf("WATCHPOINT %i: %.4X read %.2X\n", wp, addr, debug_read_byte(addr));
                    debug_break();
                }
            default:;
        }
    }
}
Exemplo n.º 2
0
uint32_t debug_read_long(uint32_t address) {
    return debug_read_byte(address)
         | debug_read_byte(address + 1) << 8
         | debug_read_byte(address + 2) << 16;
}
Exemplo n.º 3
0
uint16_t debug_read_short(uint32_t address) {
    return debug_read_byte(address)
         | debug_read_byte(address + 1) << 8;
}