the command "breakpoint":
Code: Select all
_breakpoint:
iret
Code: Select all
void isr_handler(struct registers *r)
{
void (*handler)(struct registers *r);
if (r->int_no < 32)
{
printf("\n\n\n\n\n\n\n\n\n\n");
printf("EAX: 0x%h ", r->eax);
printf("EBX: 0x%h ", r->ebx);
printf("ECX: 0x%h ", r->ecx);
printf("EDX: 0x%h\n", r->edx);
printf("EDI: 0x%h ", r->edi);
printf("ESI: 0x%h ", r->esi);
printf("EBP: 0x%h ", r->ebp);
printf("ESP: 0x%h ", r->esp);
printf("EIP: 0x%h\n", r->eip);
printf("EFLAGS: %b\n", r->eflags);
printf("ERROR: \"%s\"", sys_ex_messages[r->int_no]);
__asm volatile("cli\n"); // <----------------------------
__asm volatile("hlt\n"); // <---------------------------
}
if(r->int_no >= 32 && r->int_no <= 47)
{
handler = irq_pointers[r->int_no - 32];
if (handler)
handler(r);
if (r->int_no >= 40)
outport(0xA0, 0x20);
outport(0x20, 0x20);
}
}
just type "breakpoint" with included image
(dont mind the extention, it's a .img, but it wont let me upload that:)
thx