what are the approaches to create exception handler?

0

I want to implement handler for exception , but i don't know where i can start. The reason is that my qemu log file show me a lot of exception fault :

DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7581: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072620 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072620
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7582: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072610 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072610
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7583: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072600 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072600
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7584: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000725f0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000725f0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7585: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000725e0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000725e0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7586: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000725d0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000725d0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7587: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000725c0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000725c0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7588: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000725b0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000725b0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7589: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000725a0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000725a0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7590: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072590 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072590
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7591: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072580 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072580
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7592: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072570 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072570
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7593: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072560 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072560
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7594: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072550 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072550
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7595: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072540 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072540
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7596: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072530 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072530
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7597: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072520 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072520
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7598: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072510 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072510
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7599: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:00072500 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=00072500
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
  7600: v=0d e=9634 i=0 cpl=0 IP=0008:00009637 pc=00009637 SP=0010:000724f0 env->regs[R_EAX]=000012c6
EAX=000012c6 EBX=00009000 ECX=0005c009 EDX=000b8320
ESI=00000000 EDI=00000000 EBP=0008fff8 ESP=000724f0
EIP=00009637 EFL=00000007 [-----PC] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 000fffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 000fffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00000000 000007f8
IDT=     00000800 000007f8
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000 
DR6=ffff0ff0 DR7=00000400
CCS=0000258d CCD=000012c6 CCO=SARL    
EFER=0000000000000000

so i try to implment a little handler for some eception : -asm file :

;exception whiech have error
exception_handler :
    pop eax ; take the error code
    push eax
    call exception ; call C function which take error code in parameter
    pop eax ;remove error code
    iret

C file :

void exception(int _error_code_)
{
    if ( (_error_code_ & 0x1) == 0x0);
        //external event didn't occur
    else if ((_error_code_ & 0x1) == 0x1);
        //External error occur
    else  ;   
}

SO my preocupation is that , i don't know how i can implement exception handler

gcc
assembly
x86
qemu
osdev
asked on Stack Overflow Dec 23, 2019 by ledoux • edited Dec 23, 2019 by Michael Petch

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0