- improved gdbstub network efficiency (SF patch #1149659 by Avi Kivity)

- reimplemented "enter debugger" in ask dialog for gdbstub
- X11 and wxWidgets ask dialog now show "Debugger" button for gdbstub
- indent mode changes
This commit is contained in:
Volker Ruppert 2006-10-29 08:48:30 +00:00
parent 905de565a9
commit e8cd2052c9
6 changed files with 725 additions and 702 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: bochs.h,v 1.202 2006-10-26 17:27:04 vruppert Exp $
// $Id: bochs.h,v 1.203 2006-10-29 08:48:29 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -393,6 +393,7 @@ BOCHSAPI extern logfunc_t *genlog;
#if BX_GDBSTUB
// defines for GDB stub
void bx_gdbstub_init(void);
void bx_gdbstub_break(void);
int bx_gdbstub_check(unsigned int eip);
#define GDBSTUB_STOP_NO_REASON (0xac0)

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: cpu.h,v 1.305 2006-10-21 22:06:39 sshwarts Exp $
// $Id: cpu.h,v 1.306 2006-10-29 08:48:30 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -1199,10 +1199,6 @@ public: // for now...
#endif
Bit8u trace;
#if BX_GDBSTUB
Bit8u ispanic;
#endif
// for paging
#if BX_USE_TLB
struct {

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////
// $Id: wxmain.cc,v 1.150 2006-09-23 09:07:15 vruppert Exp $
// $Id: wxmain.cc,v 1.151 2006-10-29 08:48:30 vruppert Exp $
/////////////////////////////////////////////////////////////////
//
// wxmain.cc implements the wxWidgets frame, toolbar, menus, and dialogs.
@ -1280,7 +1280,7 @@ void MyFrame::OnLogMsg(BxEvent *be) {
wxASSERT(be->type == BX_SYNC_EVT_LOG_ASK);
wxString levelName(SIM->get_log_level_name(be->u.logmsg.level), wxConvUTF8);
LogMsgAskDialog dlg(this, -1, levelName); // panic, error, etc.
#if !BX_DEBUGGER
#if !BX_DEBUGGER && !BX_GDBSTUB
dlg.EnableButton(dlg.DEBUG, FALSE);
#endif
dlg.SetContext(wxString(be->u.logmsg.prefix, wxConvUTF8));

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: x.cc,v 1.106 2006-10-13 17:55:53 vruppert Exp $
// $Id: x.cc,v 1.107 2006-10-29 08:48:30 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -1998,19 +1998,19 @@ void x11_create_button(Display *display, Drawable dialog, GC gc, int x, int y,
int x11_ask_dialog(BxEvent *event)
{
#if !BX_DEBUGGER
const int button_x[3] = { 81, 166, 251 };
const int ask_code[3] = { BX_LOG_ASK_CHOICE_CONTINUE,
BX_LOG_ASK_CHOICE_CONTINUE_ALWAYS,
BX_LOG_ASK_CHOICE_DIE };
const int num_ctrls = 3;
#else
#if BX_DEBUGGER || BX_GDBSTUB
const int button_x[4] = { 36, 121, 206, 291 };
const int ask_code[4] = { BX_LOG_ASK_CHOICE_CONTINUE,
BX_LOG_ASK_CHOICE_CONTINUE_ALWAYS,
BX_LOG_ASK_CHOICE_ENTER_DEBUG,
BX_LOG_ASK_CHOICE_DIE };
const int num_ctrls = 4;
const int num_ctrls = 4;
#else
const int button_x[3] = { 81, 166, 251 };
const int ask_code[3] = { BX_LOG_ASK_CHOICE_CONTINUE,
BX_LOG_ASK_CHOICE_CONTINUE_ALWAYS,
BX_LOG_ASK_CHOICE_DIE };
const int num_ctrls = 3;
#endif
Window dialog;
XSizeHints hint;
@ -2079,7 +2079,7 @@ int x11_ask_dialog(BxEvent *event)
gc, button_x[0] + 2, 80, 65, 20, "Continue");
x11_create_button(xevent.xexpose.display, dialog,
gc, button_x[1] + 2, 80, 65, 20, "Alwayscont");
#if BX_DEBUGGER
#if BX_DEBUGGER || BX_GDBSTUB
x11_create_button(xevent.xexpose.display, dialog,
gc, button_x[2] + 2, 80, 65, 20, "Debugger");
#endif
@ -2101,7 +2101,7 @@ int x11_ask_dialog(BxEvent *event)
} else if ((xevent.xbutton.x > (button_x[2] + 2)) && (xevent.xbutton.x < (button_x[2] + 68))) {
control = 2;
valid = 1;
#if BX_DEBUGGER
#if BX_DEBUGGER || BX_GDBSTUB
} else if ((xevent.xbutton.x > (button_x[3] + 2)) && (xevent.xbutton.x < (button_x[3] + 68))) {
control = 3;
valid = 1;

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: logio.cc,v 1.58 2006-10-02 17:07:36 vruppert Exp $
// $Id: logio.cc,v 1.59 2006-10-29 08:48:29 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -518,6 +518,10 @@ void logfunctions::ask(int level, const char *prefix, const char *fmt, va_list a
// the debugger.
bx_debug_break();
break;
#elif BX_GDBSTUB
case BX_LOG_ASK_CHOICE_ENTER_DEBUG:
bx_gdbstub_break();
break;
#endif
default:
// this happens if panics happen before the callback is initialized