fixed extdb.cc to work in default IA32 bochs
This commit is contained in:
parent
94b2dd2bc8
commit
9078c5fc06
@ -29,6 +29,7 @@ void bx_external_debugger(BX_CPU_C *cpu)
|
||||
break;
|
||||
}
|
||||
|
||||
#if BX_SUPPORT_X86_64
|
||||
regs.rax = cpu->gen_reg[0].rrx;
|
||||
regs.rcx = cpu->gen_reg[1].rrx;
|
||||
regs.rdx = cpu->gen_reg[2].rrx;
|
||||
@ -46,6 +47,25 @@ void bx_external_debugger(BX_CPU_C *cpu)
|
||||
regs.r14 = cpu->gen_reg[14].rrx;
|
||||
regs.r15 = cpu->gen_reg[15].rrx;
|
||||
regs.rip = cpu->rip;
|
||||
#else
|
||||
regs.rax = cpu->gen_reg[0].dword.erx;
|
||||
regs.rcx = cpu->gen_reg[1].dword.erx;
|
||||
regs.rdx = cpu->gen_reg[2].dword.erx;
|
||||
regs.rbx = cpu->gen_reg[3].dword.erx;
|
||||
regs.rsp = cpu->gen_reg[4].dword.erx;
|
||||
regs.rbp = cpu->gen_reg[5].dword.erx;
|
||||
regs.rsi = cpu->gen_reg[6].dword.erx;
|
||||
regs.rdi = cpu->gen_reg[7].dword.erx;
|
||||
regs.r8 = 0;
|
||||
regs.r9 = 0;
|
||||
regs.r10 = 0;
|
||||
regs.r11 = 0;
|
||||
regs.r12 = 0;
|
||||
regs.r13 = 0;
|
||||
regs.r14 = 0;
|
||||
regs.r15 = 0;
|
||||
regs.rip = cpu->dword.eip;
|
||||
#endif
|
||||
regs.rflags = cpu->read_eflags();
|
||||
regs.es = cpu->sregs[0].selector.value;
|
||||
regs.cs = cpu->sregs[1].selector.value;
|
||||
@ -68,9 +88,13 @@ void bx_external_debugger(BX_CPU_C *cpu)
|
||||
//regs.cr7 = cpu->cr7;
|
||||
regs.fsbase = cpu->sregs[BX_SEG_REG_FS].cache.u.segment.base;
|
||||
regs.gsbase = cpu->sregs[BX_SEG_REG_GS].cache.u.segment.base;
|
||||
regs.efer = (BX_CPU_THIS_PTR msr.sce << 0)
|
||||
#if BX_SUPPORT_X86_64
|
||||
regs.efer = (BX_CPU_THIS_PTR msr.sce << 0)
|
||||
| (BX_CPU_THIS_PTR msr.lme << 8)
|
||||
| (BX_CPU_THIS_PTR msr.lma << 10);
|
||||
#else
|
||||
regs.efer = 0;
|
||||
#endif
|
||||
|
||||
if (debug_loaded == 0) {
|
||||
HINSTANCE hdbg;
|
||||
|
Loading…
x
Reference in New Issue
Block a user