[syslinux] com32: custom int3 handler
Jeff Kalikstein
jeff at kalikstein.com
Fri Nov 19 12:14:21 PST 2004
I am having problems installing a custom int3 handler
from a com32 app. Here is what I have tried:
void int3_handler()
{
put_str("int3!!!");
__asm__("iret");
}
void init_handlers()
{
struct {
unsigned long limit : 16;
unsigned long base : 32;
} __attribute__((packed)) idtr;
__asm__("sidt (%0)" :: "r"(&idtr));
unsigned long *idt = (void*)idtr.base;
idt[3] = int3_handler;
put_str("about to try int3");
anykey();
__asm__("sti");
__asm__("int3");
put_str("DONE!");
anykey();
}
When I execute the init_handlers function, I see
"DONE!", but not "int3!!!". put_str() and anykey()
functions do as you expect, and put_str does not call
any interrupts (it writes directly to CGA memory).
More information about the Syslinux
mailing list