A virtual IDT is provided -- a domain can submit a table of trap handlers to Xen via the set_trap_table() hypercall. The exception stack frame presented to a virtual trap handler is identical to its native equivalent.