X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6c506d8916fb114675e93d0e2cb20831d4022294..d1b1c8d9119229dbeed06cd252917e54a1cb77f6:/lunaix-os/kernel/debug/sdbg.c?ds=sidebyside diff --git a/lunaix-os/kernel/debug/sdbg.c b/lunaix-os/kernel/debug/sdbg.c deleted file mode 100644 index edfecea..0000000 --- a/lunaix-os/kernel/debug/sdbg.c +++ /dev/null @@ -1,92 +0,0 @@ -// FIXME Re-design needed!! - -#include -#include -#include -#include -#include -#include - -#include - -// #define USE_LSDBG_BACKEND - -LOG_MODULE("SDBG") - -volatile int debug_mode = 0; - -// begin: @cmc -#define DBG_START 0x636d6340UL - -// begin: @yay -#define DBG_END 0x79617940UL - -static int -sdbg_serial_callback(struct serial_dev* sdev) -{ - u32_t dbg_sig = *(u32_t*)sdev->rw.buf; - - if (dbg_sig == DBG_START) { - debug_mode = 1; - } else if (dbg_sig == DBG_END) { - debug_mode = 0; - } - - // Debugger should be run later - // TODO implement a defer execution mechanism (i.e., soft interrupt) - - return SERIAL_AGAIN; -} - -void -sdbg_imm(const isr_param* param) -{ - struct exec_param* execp = param->execp; - DEBUG("Quick debug mode\n"); - DEBUG("cs=%p eip=%p eax=%p ebx=%p\n", - execp->cs, - execp->eip, - param->registers.eax, - param->registers.ebx); - DEBUG("ecx=%p edx=%p edi=%p esi=%p\n", - param->registers.ecx, - param->registers.edx, - param->registers.edi, - param->registers.esi); - DEBUG("u.esp=%p k.esp=%p ebp=%p ps=%p\n", - param->esp, - execp->esp, - param->registers.ebp, - execp->eflags); - DEBUG("ss=%p ds=%p es=%p fs=%p gs=%p\n", - execp->ss, - param->registers.ds, - param->registers.es, - param->registers.fs, - param->registers.gs); - while (1) - ; -} - -static char buf[4]; - -static void -__sdbg_breakpoint(const isr_param* param) -{ - gdbstub_loop(param); -} - -void -sdbg_init() -{ - struct serial_dev* sdev = serial_get_avilable(); - - if (!sdev) { - ERROR("no serial port available\n"); - return; - } - - kprintf("listening: %s\n", sdev->dev->name.value); - - serial_rwbuf_async(sdev, buf, 4, sdbg_serial_callback, SERIAL_RW_RX); -} \ No newline at end of file