Understanding OS Crash
Posted: Fri Nov 26, 2021 11:11 pm
I'm trying to expand my debugging, and could use a few pointers.
Some code that I've recently added is faulting. Based on some research I've added -no-reboot and -d int to my QEMU options. I now have this:
Any tips/pointers, resources, or even just some basic terminology to search for would be greatly appreciated. Thanks!
Some code that I've recently added is faulting. Based on some research I've added -no-reboot and -d int to my QEMU options. I now have this:
The problem is, I'm not sure what many of these are nor how I'd go about googling it to learn more. From my research I take it the "v=" bit corresponds to interrupt vectors (I think?), and that this is generally telling me what the snapshot of the CPU was when it faulted, but other than that I'm at a loss for how to dig into this.0: v=20 e=0000 i=0 cpl=0 IP=0008:ffffffff80106485 pc=ffffffff80106485 SP=0000:ffffffff8000ff88 env->regs[R_EAX]=0000000000000000
RAX=0000000000000000 RBX=0000000000000000 RCX=ffffffff80114560 RDX=0000000000000000
RSI=0000000000000000 RDI=ffffffff80114560 RBP=ffffffff8000ff88 RSP=ffffffff8000ff88
R8 =ffffffff8000ffc4 R9 =ffffffff8000ffc0 R10=ffffffff8000ffbc R11=0000000000000000
R12=0000000000000000 R13=0000000000000000 R14=0000000000000000 R15=0000000000000000
RIP=ffffffff80106485 RFL=00000282 [--S----] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 00000000 00000000
CS =0008 0000000000000000 00000000 00209800 DPL=0 CS64 [---]
SS =0000 0000000000000000 00000000 00000000
DS =0000 0000000000000000 00000000 00000000
FS =0000 ffffffff803f9800 00000000 00000000
GS =0000 0000000000000000 00000000 00000000
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0030 ffffffff803f9400 00000067 0000e900 DPL=3 TSS64-avl
GDT= ffffffff803f9000 0000003f
IDT= ffffffff803fa000 00000fff
1: v=40 e=0000 i=1 cpl=3 IP=0023:0000000000000015 pc=0000000000000015 SP=002b:0000000000001000 env->regs[R_EAX]=0000000000000007
RAX=0000000000000007 RBX=0000000000000000 RCX=0000000000000000 RDX=0000000000000000
RSI=000000000000002c RDI=0000000000000022 RBP=0000000000000000 RSP=0000000000001000
R8 =0000000000000000 R9 =0000000000000000 R10=0000000000000000 R11=0000000000000000
R12=0000000000000000 R13=0000000000000000 R14=0000000000000000 R15=0000000000000000
RIP=0000000000000015 RFL=00000202 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 00000000 00000000
CS =0023 0000000000000000 00000000 0020f800 DPL=3 CS64 [---]
SS =002b 0000000000000000 00000000 0000f200 DPL=3 DS [-W-]
DS =0000 0000000000000000 00000000 00000000
FS =0000 ffffffff803f9800 00000000 00000000
GS =0000 0000000000000000 00000000 00000000
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0030 ffffffff803f9400 00000067 0000e900 DPL=3 TSS64-avl
GDT= ffffffff803f9000 0000003f
IDT= ffffffff80TR =0030 ffffffff803f9400 00000067 0000e900 DPL=3 TSS64-avl
GDT= ffffffff803f9000 0000003f
IDT= ffffffff803fa000 00000fff
CR0=80000011 CR2=0000000040000fa8 CR3=000000000dffe000 CR4=00000020
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=0000000000000000 CCD=ffffffff8dffffd8 CCO=EFLAGS
EFER=0000000000000500
check_exception old: 0xe new 0xe
3: v=08 e=0000 i=0 cpl=3 IP=0023:0000000000000015 pc=0000000000000015 SP=002b:0000000000001000 env->regs[R_EAX]=0000000000000007
RAX=0000000000000007 RBX=0000000000000000 RCX=0000000000000000 RDX=0000000000000000
RSI=000000000000002c RDI=0000000000000022 RBP=0000000000000000 RSP=0000000000001000
R8 =0000000000000000 R9 =0000000000000000 R10=0000000000000000 R11=0000000000000000
R12=0000000000000000 R13=0000000000000000 R14=0000000000000000 R15=0000000000000000
RIP=0000000000000015 RFL=00000202 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 00000000 00000000
CS =0023 0000000000000000 00000000 0020f800 DPL=3 CS64 [---]
SS =002b 0000000000000000 00000000 0000f200 DPL=3 DS [-W-]
DS =0000 0000000000000000 00000000 00000000
FS =0000 ffffffff803f9800 00000000 00000000
GS =0000 0000000000000000 00000000 00000000
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0030 ffffffff803f9400 00000067 0000e900 DPL=3 TSS64-avl
GDT= ffffffff803f9000 0000003f
IDT= ffffffff803fa000 00000fff
CR0=80000011 CR2=0000000040000fa8 CR3=000000000dffe000 CR4=00000020
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=0000000000000000 CCD=ffffffff8dffffd8 CCO=EFLAGS
EFER=0000000000000500
check_exception old: 0x8 new 0xe
Any tips/pointers, resources, or even just some basic terminology to search for would be greatly appreciated. Thanks!