Miscellaneous patches for Tattam's External Debugger.
- Now compiles for plain ia-32 - Fixed some printf formatting for ia32 only. - Update to latest Win32 DLL - Added an ICEBP (Undoc 0xF8, INT 01) facility. - updated to use latest VGA refresh routine
This commit is contained in:
parent
d9c8cb51f5
commit
1bb5040031
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: cpu.cc,v 1.69 2002-10-25 12:36:42 bdenney Exp $
|
// $Id: cpu.cc,v 1.70 2002-11-04 05:27:25 ptrumpet Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
@ -865,22 +865,18 @@ BX_CPU_C::revalidate_prefetch_q(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if BX_SUPPORT_X86_64
|
#if BX_EXTERNAL_DEBUGGER
|
||||||
|
|
||||||
void
|
void
|
||||||
BX_CPU_C::ask (int level, const char *prefix, const char *fmt, va_list ap)
|
BX_CPU_C::ask (int level, const char *prefix, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
#if BX_EXTERNAL_DEBUGGER
|
|
||||||
char buf1[1024];
|
char buf1[1024];
|
||||||
vsprintf (buf1, fmt, ap);
|
vsprintf (buf1, fmt, ap);
|
||||||
printf ("%s %s\n", prefix, buf1);
|
printf ("%s %s\n", prefix, buf1);
|
||||||
trap_debugger(1);
|
trap_debugger(1);
|
||||||
#else
|
//this->logfunctions::ask(level,prefix,fmt,ap);
|
||||||
this->logfunctions::ask(level,prefix,fmt,ap);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if BX_EXTERNAL_DEBUGGER
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BX_CPU_C::trap_debugger (bx_bool callnow)
|
BX_CPU_C::trap_debugger (bx_bool callnow)
|
||||||
{
|
{
|
||||||
@ -890,10 +886,7 @@ BX_CPU_C::trap_debugger (bx_bool callnow)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // #if BX_EXTERNAL_DEBUGGER
|
||||||
|
|
||||||
#endif // #if BX_SUPPORT_X86_64
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if BX_DEBUGGER
|
#if BX_DEBUGGER
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: cpu.h,v 1.110 2002-10-28 18:36:53 yakovlev Exp $
|
// $Id: cpu.h,v 1.111 2002-11-04 05:27:25 ptrumpet Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
@ -1544,7 +1544,9 @@ union {
|
|||||||
//Bit32s daddr_upper; // upper bits must be canonical (-virtmax --> + virtmax)
|
//Bit32s daddr_upper; // upper bits must be canonical (-virtmax --> + virtmax)
|
||||||
// instruction upper 32 bits - not used any longer
|
// instruction upper 32 bits - not used any longer
|
||||||
//Bit32s iaddr_upper; // upper bits must be canonical (-virtmax --> + virtmax)
|
//Bit32s iaddr_upper; // upper bits must be canonical (-virtmax --> + virtmax)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if BX_EXTERNAL_DEBUGGER
|
||||||
void ask (int level, const char *prefix, const char *fmt, va_list ap);
|
void ask (int level, const char *prefix, const char *fmt, va_list ap);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ void bx_external_debugger(BX_CPU_C *cpu)
|
|||||||
if (call_debugger != NULL) debug_loaded = 2;
|
if (call_debugger != NULL) debug_loaded = 2;
|
||||||
}
|
}
|
||||||
if (debug_loaded == 2) {
|
if (debug_loaded == 2) {
|
||||||
bx_vga.timer();
|
DEV_vga_refresh();
|
||||||
call_debugger(®s,cpu->mem->vector,cpu->mem->len);
|
call_debugger(®s,cpu->mem->vector,cpu->mem->len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: paging.cc,v 1.36 2002-10-25 12:36:43 bdenney Exp $
|
// $Id: paging.cc,v 1.37 2002-11-04 05:27:25 ptrumpet Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
@ -977,7 +977,11 @@ page_fault_not_present:
|
|||||||
// Invalidate TLB entry.
|
// Invalidate TLB entry.
|
||||||
BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf = BX_INVALID_TLB_ENTRY;
|
BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf = BX_INVALID_TLB_ENTRY;
|
||||||
#if BX_EXTERNAL_DEBUGGER
|
#if BX_EXTERNAL_DEBUGGER
|
||||||
printf("page fault for address %08x%08x\n",(Bit32u)(laddr >> 32),(Bit32u)(laddr & 0xffffffff));
|
#if BX_SUPPORT_X86_64
|
||||||
|
printf("page fault for address %08x%08x\n",(Bit32u)(laddr >> 32),(Bit32u)(laddr & 0xffffffff));
|
||||||
|
#else
|
||||||
|
printf("page fault for address %08xx\n",(laddr >> 32));
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
exception(BX_PF_EXCEPTION, error_code, 0);
|
exception(BX_PF_EXCEPTION, error_code, 0);
|
||||||
return(0); // keep compiler happy
|
return(0); // keep compiler happy
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: soft_int.cc,v 1.12 2002-09-28 00:54:05 kevinlawton Exp $
|
// $Id: soft_int.cc,v 1.13 2002-11-04 05:27:26 ptrumpet Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
@ -96,6 +96,10 @@ BX_CPU_C::INT1(bxInstruction_c *i)
|
|||||||
BX_CPU_THIS_PTR show_flag |= Flag_int;
|
BX_CPU_THIS_PTR show_flag |= Flag_int;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if BX_EXTERNAL_DEBUGGER
|
||||||
|
trap_debugger(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
interrupt(1, 1, 0, 0);
|
interrupt(1, 1, 0, 0);
|
||||||
BX_INSTR_FAR_BRANCH(CPU_ID, BX_INSTR_IS_INT,
|
BX_INSTR_FAR_BRANCH(CPU_ID, BX_INSTR_IS_INT,
|
||||||
BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].selector.value,
|
BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].selector.value,
|
||||||
|
Loading…
Reference in New Issue
Block a user