X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/4f966b9a6710d138d6e921bf2a1e40f2abc76f9a..b91be0033265b5b6bd716bd39cb0971da41906c4:/lunaix-os/debug/bg_lsdbg.c diff --git a/lunaix-os/debug/bg_lsdbg.c b/lunaix-os/debug/bg_lsdbg.c index 0f0496d..c5072d7 100644 --- a/lunaix-os/debug/bg_lsdbg.c +++ b/lunaix-os/debug/bg_lsdbg.c @@ -7,7 +7,7 @@ LOG_MODULE("DBG"); -static volatile sdbg_state = 0; +static volatile int sdbg_state = 0; void sdbg_printf(char* fmt, ...) @@ -26,16 +26,18 @@ sdbg_printf(char* fmt, ...) void lunaix_sdbg_loop(isr_param* param) { - char c; + u8_t c; if (sdbg_state == SDBG_STATE_WAIT_BRK) { - (param)->eflags &= ~(1 << 8); + (param)->execp->eflags &= ~(1 << 8); sdbg_state = SDBG_STATE_INSESSION; - sdbg_printf("[%p:%p] Break point reached.\n", param->cs, param->eip); + sdbg_printf("[%p:%p] Break point reached.\n", + param->execp->cs, + param->execp->eip); } while (1) { - c = serial_rx_byte(SERIAL_COM1); + c = (u8_t)serial_rx_byte(SERIAL_COM1); if (c == SDBG_CLNT_QUIT) { sdbg_state = SDBG_STATE_START; break; @@ -44,12 +46,14 @@ lunaix_sdbg_loop(isr_param* param) switch (c) { case SDBG_CLNT_HI: if (sdbg_state == SDBG_STATE_START) { - sdbg_printf( - "[%p:%p] Session started.\n", param->cs, param->eip); + sdbg_printf("[%p:%p] Session started.\n", + param->execp->cs, + param->execp->eip); sdbg_state = SDBG_STATE_INSESSION; } else { - sdbg_printf( - "[%p:%p] Session resumed.\n", param->cs, param->eip); + sdbg_printf("[%p:%p] Session resumed.\n", + param->execp->cs, + param->execp->eip); } break; case SDBG_CLNT_RREG: @@ -57,14 +61,14 @@ lunaix_sdbg_loop(isr_param* param) serial_tx_buffer(SERIAL_COM1, (char*)param, sizeof(isr_param)); break; case SDBG_CLNT_STEP: - ((isr_param*)param)->eflags |= (1 << 8); // set TF flags + ((isr_param*)param)->execp->eflags |= (1 << 8); // set TF flags sdbg_state = SDBG_STATE_WAIT_BRK; return; case SDBG_CLNT_BRKP: // the break point address - // serial_rx_buffer(SERIAL_COM1, buffer, sizeof(uintptr_t)); + // serial_rx_buffer(SERIAL_COM1, buffer, sizeof(ptr_t)); - // asm("movl %0, %%dr0" ::"r"(*((uintptr_t*)buffer))); + // asm("movl %0, %%dr0" ::"r"(*((ptr_t*)buffer))); sdbg_state = SDBG_STATE_WAIT_BRK; return;