Completely replace win32 enh debugger (GUI debugger frontend for Bochs internal dbg)
Used new code by bewing, converging to cross-platform GUI frontend
This commit is contained in:
parent
f2f5d5c915
commit
9b85851b12
4
bochs/configure
vendored
4
bochs/configure
vendored
@ -1,5 +1,5 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# From configure.in Id: configure.in,v 1.376 2008/12/11 21:00:01 sshwarts Exp .
|
# From configure.in Id: configure.in,v 1.377 2008/12/11 21:19:37 sshwarts Exp .
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.61.
|
# Generated by GNU Autoconf 2.61.
|
||||||
#
|
#
|
||||||
@ -37975,7 +37975,7 @@ fi
|
|||||||
LIBS="$LIBS -lcomctl32"
|
LIBS="$LIBS -lcomctl32"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
DIALOG_OBJS="win32dialog.o win32_enh_dbg.o"
|
DIALOG_OBJS="win32dialog.o win32_enh_dbg_osdep.o"
|
||||||
EXPORT_DYNAMIC=""
|
EXPORT_DYNAMIC=""
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -2,7 +2,7 @@ dnl // Process this file with autoconf to produce a configure script.
|
|||||||
|
|
||||||
AC_PREREQ(2.50)
|
AC_PREREQ(2.50)
|
||||||
AC_INIT(bochs.h)
|
AC_INIT(bochs.h)
|
||||||
AC_REVISION([[$Id: configure.in,v 1.377 2008-12-11 21:19:37 sshwarts Exp $]])
|
AC_REVISION([[$Id: configure.in,v 1.378 2008-12-27 12:06:39 sshwarts Exp $]])
|
||||||
AC_CONFIG_HEADER(config.h)
|
AC_CONFIG_HEADER(config.h)
|
||||||
AC_CONFIG_HEADER(ltdlconf.h)
|
AC_CONFIG_HEADER(ltdlconf.h)
|
||||||
|
|
||||||
@ -2641,7 +2641,7 @@ case $target in
|
|||||||
LIBS="$LIBS -lcomctl32"
|
LIBS="$LIBS -lcomctl32"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
DIALOG_OBJS="win32dialog.o win32_enh_dbg.o"
|
DIALOG_OBJS="win32dialog.o win32_enh_dbg_osdep.o"
|
||||||
EXPORT_DYNAMIC=""
|
EXPORT_DYNAMIC=""
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -70,7 +70,7 @@ GUI_OBJS_RFB = rfb.o
|
|||||||
GUI_OBJS_AMIGAOS = amigaos.o
|
GUI_OBJS_AMIGAOS = amigaos.o
|
||||||
GUI_OBJS_WX = wx.o
|
GUI_OBJS_WX = wx.o
|
||||||
GUI_OBJS_WX_SUPPORT = wxmain.o wxdialog.o
|
GUI_OBJS_WX_SUPPORT = wxmain.o wxdialog.o
|
||||||
OBJS_THAT_CANNOT_BE_PLUGINS = keymap.o gui.o siminterface.o textconfig.o @DIALOG_OBJS@
|
OBJS_THAT_CANNOT_BE_PLUGINS = keymap.o gui.o siminterface.o textconfig.o enh_dbg.o @DIALOG_OBJS@
|
||||||
OBJS_THAT_CAN_BE_PLUGINS = @GUI_OBJS@
|
OBJS_THAT_CAN_BE_PLUGINS = @GUI_OBJS@
|
||||||
|
|
||||||
X_LIBS = @X_LIBS@
|
X_LIBS = @X_LIBS@
|
||||||
@ -351,7 +351,7 @@ win32.o: win32.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug.
|
|||||||
../iodev/unmapped.h ../iodev/ne2k.h ../iodev/guest2host.h \
|
../iodev/unmapped.h ../iodev/ne2k.h ../iodev/guest2host.h \
|
||||||
../iodev/slowdown_timer.h ../iodev/extfpuirq.h ../iodev/gameport.h \
|
../iodev/slowdown_timer.h ../iodev/extfpuirq.h ../iodev/gameport.h \
|
||||||
win32dialog.h ../config.h win32res.h ../font/vga.bitmap.h
|
win32dialog.h ../config.h win32res.h ../font/vga.bitmap.h
|
||||||
win32_enh_dbg.o: win32_enh_dbg.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h \
|
enh_dbg.o: enh_dbg.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h \
|
||||||
../bx_debug/debug.h ../config.h ../osdep.h ../bxversion.h \
|
../bx_debug/debug.h ../config.h ../osdep.h ../bxversion.h \
|
||||||
../gui/siminterface.h ../memory/memory.h ../pc_system.h ../plugin.h \
|
../gui/siminterface.h ../memory/memory.h ../pc_system.h ../plugin.h \
|
||||||
../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
||||||
@ -374,6 +374,11 @@ win32dialog.o: win32dialog.@CPP_SUFFIX@ win32dialog.h ../config.h ../bochs.h \
|
|||||||
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
||||||
../plugin.h ../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
../plugin.h ../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
||||||
../gui/keymap.h ../instrument/stubs/instrument.h win32res.h
|
../gui/keymap.h ../instrument/stubs/instrument.h win32res.h
|
||||||
|
win32_enh_dbg_osdep.o: win32_enh_dbg_osdep.@CPP_SUFFIX@ win32dialog.h ../config.h ../bochs.h \
|
||||||
|
../config.h ../osdep.h ../bx_debug/debug.h ../config.h ../osdep.h \
|
||||||
|
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
||||||
|
../plugin.h ../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
||||||
|
../gui/keymap.h ../instrument/stubs/instrument.h win32res.h
|
||||||
wx.o: wx.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug.h \
|
wx.o: wx.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug.h \
|
||||||
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
||||||
../plugin.h ../extplugin.h ../ltdl.h ../gui/gui.h ../gui/textconfig.h \
|
../plugin.h ../extplugin.h ../ltdl.h ../gui/gui.h ../gui/textconfig.h \
|
||||||
@ -569,7 +574,7 @@ win32.lo: win32.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug
|
|||||||
../iodev/unmapped.h ../iodev/ne2k.h ../iodev/guest2host.h \
|
../iodev/unmapped.h ../iodev/ne2k.h ../iodev/guest2host.h \
|
||||||
../iodev/slowdown_timer.h ../iodev/extfpuirq.h ../iodev/gameport.h \
|
../iodev/slowdown_timer.h ../iodev/extfpuirq.h ../iodev/gameport.h \
|
||||||
win32dialog.h ../config.h win32res.h ../font/vga.bitmap.h
|
win32dialog.h ../config.h win32res.h ../font/vga.bitmap.h
|
||||||
win32_enh_dbg.lo: win32_enh_dbg.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h \
|
enh_dbg.lo: enh_dbg.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h \
|
||||||
../bx_debug/debug.h ../config.h ../osdep.h ../bxversion.h \
|
../bx_debug/debug.h ../config.h ../osdep.h ../bxversion.h \
|
||||||
../gui/siminterface.h ../memory/memory.h ../pc_system.h ../plugin.h \
|
../gui/siminterface.h ../memory/memory.h ../pc_system.h ../plugin.h \
|
||||||
../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
||||||
@ -592,6 +597,11 @@ win32dialog.lo: win32dialog.@CPP_SUFFIX@ win32dialog.h ../config.h ../bochs.h \
|
|||||||
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
||||||
../plugin.h ../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
../plugin.h ../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
||||||
../gui/keymap.h ../instrument/stubs/instrument.h win32res.h
|
../gui/keymap.h ../instrument/stubs/instrument.h win32res.h
|
||||||
|
win32_enh_dbg_osdep.lo: win32_enh_dbg_osdep.@CPP_SUFFIX@ win32dialog.h ../config.h ../bochs.h \
|
||||||
|
../config.h ../osdep.h ../bx_debug/debug.h ../config.h ../osdep.h \
|
||||||
|
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
||||||
|
../plugin.h ../extplugin.h ../gui/gui.h ../gui/textconfig.h ../config.h \
|
||||||
|
../gui/keymap.h ../instrument/stubs/instrument.h win32res.h
|
||||||
wx.lo: wx.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug.h \
|
wx.lo: wx.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug.h \
|
||||||
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
../bxversion.h ../gui/siminterface.h ../memory/memory.h ../pc_system.h \
|
||||||
../plugin.h ../extplugin.h ../ltdl.h ../gui/gui.h ../gui/textconfig.h \
|
../plugin.h ../extplugin.h ../ltdl.h ../gui/gui.h ../gui/textconfig.h \
|
||||||
|
3456
bochs/gui/enh_dbg.cc
Executable file
3456
bochs/gui/enh_dbg.cc
Executable file
File diff suppressed because it is too large
Load Diff
68
bochs/gui/enh_dbg.h
Executable file
68
bochs/gui/enh_dbg.h
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#ifndef BX_ENH_DBG_DEF_H
|
||||||
|
#define BX_ENH_DBG_DEF_H
|
||||||
|
|
||||||
|
#include "win32dialog.h"
|
||||||
|
|
||||||
|
// FIXME: platform dependent!
|
||||||
|
#define TreeParent HTREEITEM
|
||||||
|
void MakeTreeChild (HTREEITEM *h_P, int ChildCount, HTREEITEM *h_TC);
|
||||||
|
|
||||||
|
void MoveLists();
|
||||||
|
void SetStatusText(int column, char *buf); // should it be here ?
|
||||||
|
void MakeListsGray();
|
||||||
|
void DispMessage(char *msg, char *title);
|
||||||
|
void InsertListRow(char *ColumnText[], int ColumnCount, int listnum, int LineCount, int grouping);
|
||||||
|
void StartListUpdate(int listnum);
|
||||||
|
void EndListUpdate(int listnum);
|
||||||
|
void RedrawColumns(int listnum);
|
||||||
|
void Invalidate(int i);
|
||||||
|
void TakeInputFocus();
|
||||||
|
bx_bool ShowAskDialog();
|
||||||
|
bx_bool NewFont();
|
||||||
|
void GrayMenuItem(int flag, int CmdIndex);
|
||||||
|
void ShowMemData(bx_bool initting);
|
||||||
|
void SetMenuCheckmark (int flag, int CmdIndex);
|
||||||
|
void ClearInputWindow();
|
||||||
|
void VSizeChange();
|
||||||
|
void ToggleWSchecks(int newWS, int oldWS);
|
||||||
|
void SetOutWinTxt();
|
||||||
|
void ShowFW();
|
||||||
|
void GetInputEntry(char *buf);
|
||||||
|
void SelectHistory(int UpDown);
|
||||||
|
|
||||||
|
void HideTree();
|
||||||
|
void FillPTree();
|
||||||
|
|
||||||
|
int GetASMTopIdx();
|
||||||
|
void ScrollASM(int pixels);
|
||||||
|
|
||||||
|
void GetLIText(int listnum, int itemnum, int column, char *buf);
|
||||||
|
void SetLIState(int listnum, int itemnum, bx_bool Select);
|
||||||
|
int GetNextSelectedLI(int listnum, int StartPt);
|
||||||
|
|
||||||
|
bx_bool OSInit();
|
||||||
|
void SpecialInit();
|
||||||
|
void dbgOnToggle(bx_bool on);
|
||||||
|
|
||||||
|
#define CHK_CMD_MODEB CMD_MODEB
|
||||||
|
#define CHK_CMD_ONECPU CMD_ONECPU
|
||||||
|
#define CHK_CMD_UCASE CMD_UCASE
|
||||||
|
#define CHK_CMD_IOWIN CMD_IOWIN
|
||||||
|
#define CHK_CMD_SBTN CMD_SBTN
|
||||||
|
#define CHK_CMD_MHEX CMD_MHEX
|
||||||
|
#define CHK_CMD_MASCII CMD_MASCII
|
||||||
|
#define CHK_CMD_LEND CMD_LEND
|
||||||
|
#define CHK_CMD_IGNSA CMD_IGNSA
|
||||||
|
#define CHK_CMD_IGNNT CMD_IGNNT
|
||||||
|
#define CHK_CMD_RCLR CMD_RCLR
|
||||||
|
#define CHK_CMD_EREG CMD_EREG
|
||||||
|
//#define CHK_CMD_SREG S_REG HIHI -- don't need these?
|
||||||
|
//#define CHK_CMD_SYSR SYS_R
|
||||||
|
//#define CHK_CMD_CREG C_REG
|
||||||
|
//#define CHK_CMD_FPUR FPU_R
|
||||||
|
//#define CHK_CMD_XMMR XMM_R
|
||||||
|
//#define CHK_CMD_DREG D_REG
|
||||||
|
//#define CHK_CMD_TREG T_REG
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,179 +1,114 @@
|
|||||||
// include file for the Win32 Enhanced GUI debugger frontend
|
// include file for the Enhanced GUI debugger frontend
|
||||||
|
|
||||||
|
#ifndef BX_WENH_DBG_H
|
||||||
|
#define BX_WENH_DBG_H
|
||||||
|
|
||||||
|
#ifndef FALSE
|
||||||
|
#define FALSE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
// User Customizable initial settings:
|
// User Customizable initial settings:
|
||||||
|
|
||||||
bx_bool SeeReg[8] = {
|
extern bx_bool SeeReg[8];
|
||||||
TRUE, // in 64bit mode, show 32bit versions of registers also (EAX, ...)
|
|
||||||
FALSE, // show segment registers (CS, ...)
|
|
||||||
FALSE, // show GDTR, IDTR, LDTR, Task Reg
|
|
||||||
FALSE, // show control register (CR0, ...)
|
|
||||||
FALSE, // show FPU (STi) / MMX registers
|
|
||||||
FALSE, // show XMM registers
|
|
||||||
FALSE, // show the Debug Registers (DR0, ...)
|
|
||||||
FALSE // Test Registers not yet supported in bochs (2.3.7)
|
|
||||||
};
|
|
||||||
|
|
||||||
bx_bool ShowIOWindows = TRUE; // Display the top-row Step/Continue pushbuttons
|
extern bx_bool SingleCPU; // Display all SMP CPUs
|
||||||
bx_bool ShowButtons = TRUE; // Display the top-row Step/Continue pushbuttons
|
extern bx_bool ShowIOWindows; // Display the Input and Output Internal Debugger windows
|
||||||
bx_bool SeeRegColors = TRUE; // Display registers with background color "groups"
|
extern bx_bool ShowButtons; // Display the top-row Step/Continue pushbuttons
|
||||||
bx_bool ignoreNxtT = TRUE; // Do not show "Next at t=" output lines
|
extern bx_bool SeeRegColors; // Display registers with background color "groups"
|
||||||
bx_bool ignSSDisasm = TRUE; // Do not show extra disassembly line at each break
|
extern bx_bool ignoreNxtT; // Do not show "Next at t=" output lines
|
||||||
int UprCase = 1; // 1 = convert all Asm, Register names, Register values to uppercase
|
extern bx_bool ignSSDisasm; // Do not show extra disassembly line at each break
|
||||||
int DumpInAsciiMode = 3; // bit 1 = show ASCII in dumps, bit 2 = show hex, value=0 is illegal
|
extern int UprCase; // 1 = convert all Asm, Register names, Register values to uppercase
|
||||||
|
extern int DumpInAsciiMode; // bit 1 = show ASCII in dumps, bit 2 = show hex, value=0 is illegal
|
||||||
|
|
||||||
bx_bool isLittleEndian = TRUE;
|
extern bx_bool isLittleEndian;
|
||||||
int DefaultAsmLines = 250; // default # of asm lines disassembled and "cached"
|
extern int DefaultAsmLines; // default # of asm lines disassembled and "cached"
|
||||||
int bottommargin = 6; // ASM autoscroller tries to leave this many lines below
|
extern int bottommargin; // ASM autoscroller tries to leave this many lines below
|
||||||
int topmargin = 3; // autoscroller tries to leave this many lines above
|
extern int topmargin; // autoscroller tries to leave this many lines above
|
||||||
// Note: topmargin must be less than bottommargin
|
// Note: topmargin must be less than bottommargin
|
||||||
|
|
||||||
// How to use DockOrder: the Register list is window 1, ASM is window 2, MemDump is window 3
|
// How to use DockOrder: the Register list is window 1, ASM is window 2, MemDump is window 3
|
||||||
// Create the hex value with the digits in the order you want the windows to be.
|
// Create the hex value with the digits in the order you want the windows to be.
|
||||||
// 0x312 would have MemDump on the left, Register in the middle, ASM on the right
|
// 0x312 would have MemDump on the left, Register in the middle, ASM on the right
|
||||||
short DockOrder = 0x123; // set the default List "docking" (Reg, ASM, Dump)
|
extern short DockOrder; // set the default List "docking" (Reg, ASM, Dump)
|
||||||
|
|
||||||
COLORREF ColorList[16] = { // background "register type" colors indexed by RegColor value
|
#define STACK_ENTRIES 50 // # of words/dwords/qwords to display in stack window
|
||||||
RGB(255,255,255), // white
|
|
||||||
RGB(200,255,255), // blue (aqua)
|
|
||||||
RGB(230,230,230), // gray
|
|
||||||
RGB(248,255,200), // yellow
|
|
||||||
RGB(216,216,255), // purple
|
|
||||||
RGB(200,255,200), // green
|
|
||||||
RGB(255,230,200), // orange
|
|
||||||
RGB(255,255,255), // user definable
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255),
|
|
||||||
RGB(255,255,255)
|
|
||||||
};
|
|
||||||
|
|
||||||
#define STATUS_WIN_OVERLAP 4 // # of "extra" pixels at the top of a Status window
|
|
||||||
#define STACK_ENTRIES 50 // # of words/dwords/qwords to display in stack window
|
|
||||||
// Note: STACK_ENTRIES must be <= 512
|
// Note: STACK_ENTRIES must be <= 512
|
||||||
|
|
||||||
// END of User Customizable settings
|
// END of User Customizable settings
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "iodev/iodev.h"
|
|
||||||
#include "wenhdbg_res.h" // MenuIDs
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef LVS_EX_DOUBLEBUFFER
|
|
||||||
#define IS_WIN98
|
|
||||||
// these two defines may not exist in some compilers
|
|
||||||
#define LVS_EX_DOUBLEBUFFER 0
|
|
||||||
#define LVIF_GROUPID 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MAX_ASM 2048 // max entries in ASM window
|
#define MAX_ASM 2048 // max entries in ASM window
|
||||||
|
|
||||||
// The wordsize popup is the 13th entry in the Opt menu -- COUNTING SEPARATORS
|
|
||||||
// Index = (entry number - 1) -- if the Opt menu is modified, then update this value
|
|
||||||
// -- or else the checkmarks won't work
|
|
||||||
#define WS_POPUP_IDX 12
|
|
||||||
|
|
||||||
|
|
||||||
// Handles to Windows and global stuff
|
|
||||||
HWND hY; // complete parent window
|
|
||||||
HWND hL[3]; // 0=registers, 1=Asm, 2=MemDump
|
|
||||||
HWND hE_I; // command input window
|
|
||||||
HWND hS_S; // "status" window at bottom
|
|
||||||
HWND hE_O; // debugger text output
|
|
||||||
HWND hT; // param_tree window
|
|
||||||
HWND hBTN[5]; // button row
|
|
||||||
HWND hCPUt[BX_MAX_SMP_THREADS_SUPPORTED]; // "tabs" for the individual CPUs
|
|
||||||
HFONT CustomFont = NULL;
|
|
||||||
HMENU hOptMenu; // "Options" popup menu (needed to set check marks)
|
|
||||||
HMENU hViewMenu; // "View" popup menu (needed to gray entries)
|
|
||||||
HMENU hCmdMenu; // "Command" popup menu (needed to gray entries)
|
|
||||||
// one "defualtProc" for each edit window (Input and Output)
|
|
||||||
WNDPROC wEdit[2];
|
|
||||||
WNDPROC wBtn; // all the buttons have the same Proc
|
|
||||||
WNDPROC wTreeView;
|
|
||||||
WNDPROC wListView; // all the lists use the same Proc
|
|
||||||
|
|
||||||
//HANDLE hTCevent[BX_MAX_SMP_THREADS_SUPPORTED]; // Start/Sleep Control for cpu_loop threads
|
|
||||||
|
|
||||||
// get a "class" to access the disassebler
|
|
||||||
// Note; any instance has access to all the member functions -- that is enough!
|
|
||||||
// -- i.e. No further initialization necessary.
|
|
||||||
static disassembler bx_disassemble;
|
|
||||||
// for refreshing the bochs VGA window:
|
|
||||||
BOCHSAPI extern bx_devices_c bx_devices;
|
|
||||||
|
|
||||||
// Note: all these BSS global variables are initialized to 0 automatically
|
// Note: all these BSS global variables are initialized to 0 automatically
|
||||||
Bit64u SelectedDataAddress = 0;
|
extern bx_bool SA_valid;
|
||||||
Bit64u CurrentAsmLA = 0; // = EIP/RIP -- for highlighting in ASM window
|
extern Bit64u SelectedDataAddress;
|
||||||
Bit64u BottomAsmLA; // beginning and end addrs on ASM window
|
extern Bit64u CurrentAsmLA; // = EIP/RIP -- for highlighting in ASM window
|
||||||
Bit64u TopAsmLA;
|
extern Bit64u BottomAsmLA; // beginning and end addrs on ASM window
|
||||||
|
extern Bit64u TopAsmLA;
|
||||||
|
|
||||||
Bit32u PrevStepNSize = 50; // cpu_loop control variables
|
extern Bit32u PrevStepNSize; // cpu_loop control variables
|
||||||
//Bit32u RequestedLoops; // number of cpu_loops the user is asking for
|
//Bit32u RequestedLoops; // number of cpu_loops the user is asking for
|
||||||
//bx_bool DoBreak; // stop a local subthreaded cpu_loop
|
//bx_bool DoBreak; // stop a local subthreaded cpu_loop
|
||||||
Bit64u PrevPtime = 9; // any number other than 0
|
extern Bit64u PrevPtime; // any number other than 0
|
||||||
Bit64u NewPtime; // used to test whether sim has "updated"
|
extern Bit64u NewPtime; // used to test whether sim has "updated"
|
||||||
unsigned int TotCPUs; // # of CPUs in a multi-CPU simulation
|
extern unsigned TotCPUs; // # of CPUs in a multi-CPU simulation
|
||||||
unsigned int CurrentCPU; // cpu that is being displayed
|
extern unsigned CurrentCPU; // cpu that is being displayed
|
||||||
|
|
||||||
|
// AskTest stuff -- for the generic dialog box
|
||||||
|
struct ASKTEXT {
|
||||||
|
char* title;
|
||||||
|
char* prompt;
|
||||||
|
char* reply;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct ASKTEXT ask_str;
|
||||||
|
|
||||||
// window resizing/docking stuff
|
// window resizing/docking stuff
|
||||||
HCURSOR hCursResize;
|
extern int OneCharWide; // average width of a char in current font (pixels)
|
||||||
HCURSOR hCursDock;
|
extern int Sizing; // current "resizing/docking mode"
|
||||||
HCURSOR hCursArrow;
|
extern int Resize_HiX; // horizontal limits of the current resize operation (pixels)
|
||||||
LVHITTESTINFO lvht; // calculate and remember which list item was clicked
|
extern int Resize_LoX;
|
||||||
int OneCharWide; // average width of a char in current font
|
extern unsigned ListWidthPix[3]; // set initial proportions of Reg, Asm, Dump windows
|
||||||
int Sizing = 0; // current "resizing/docking mode"
|
extern unsigned LstTop;
|
||||||
int Resize_HiX; // horizontal limits of the current resize operation
|
extern int CurCenterList;
|
||||||
int Resize_LoX;
|
extern int SizeList; // pre-docking list #
|
||||||
unsigned short BarScrx[2]; // position of central listview's left and right borders in SCREEN coordinates
|
extern bx_bool DumpHasFocus;
|
||||||
unsigned short BarClix[2]; // in client coordinates
|
extern Bit32s xClick; // halfway through a mouseclick flag + location
|
||||||
unsigned int ListWidthPix[3] = {5,7,8}; // set initial proportions of Reg, Asm, Dump windows
|
extern Bit32s yClick; // values are in Listview coordinates
|
||||||
unsigned int LstTop = 0;
|
extern Bit32u CurTimeStamp; // last mousedown time
|
||||||
int CurCenterList;
|
// BarClix holds the x-axis position (in pixels or logical units) of the two resizing bars,
|
||||||
int SizeList; // pre-docking list #
|
// in parent coordinates (ie. any window that contains the lists)
|
||||||
bx_bool DumpHasFocus = FALSE;
|
extern unsigned short BarClix[2];
|
||||||
Bit32s xClick = -1; // halfway through a mouseclick flag + location
|
|
||||||
Bit32s yClick; // values are in Listview coordinates
|
|
||||||
Bit32u CurTimeStamp; // last mousedown time
|
|
||||||
short nDock[36] = { // lookup table for alternate DockOrders
|
|
||||||
0x231, 0x312, 0x231, 0x213, 0x132, 0x132,
|
|
||||||
0x213, 0x321, 0x123, 0x123, 0x321, 0x312,
|
|
||||||
0x213, 0x213, 0x123, 0x312, 0x321, 0x312,
|
|
||||||
0x132, 0x123, 0x132, 0x321, 0x231, 0x231,
|
|
||||||
0x312, 0x312, 0x231, 0x213, 0x132, 0x213,
|
|
||||||
0x132, 0x123, 0x321, 0x321, 0x123, 0x231
|
|
||||||
};
|
|
||||||
|
|
||||||
// base window "styles" for the 3 listviews.
|
extern bx_bool AtBreak; // Status indicators
|
||||||
long LVStyle[3] = {
|
extern bx_bool PrevAtBreak;
|
||||||
LVS_REPORT | WS_CHILD,
|
extern bx_bool CpuModeChange;
|
||||||
LVS_SHOWSELALWAYS | LVS_REPORT | WS_CHILD,
|
extern bx_bool StatusChange;
|
||||||
LVS_SHOWSELALWAYS | LVS_REPORT | WS_CHILD | WS_VISIBLE
|
|
||||||
};
|
|
||||||
|
|
||||||
bx_bool AtBreak = FALSE; // Status indicators
|
extern bx_bool In64Mode; // CPU modes
|
||||||
bx_bool PrevAtBreak = FALSE;
|
extern bx_bool In32Mode;
|
||||||
bx_bool CpuModeChange = TRUE;
|
extern unsigned CpuMode;
|
||||||
bx_bool StatusChange = TRUE;
|
extern Bit32u InPaging; // Storage for the top bit of CR0, unmodified
|
||||||
|
|
||||||
bx_bool In64Mode = FALSE; // CPU modes
|
extern bx_bool doOneTimeInit; // Internal flags
|
||||||
bx_bool In32Mode = FALSE;
|
extern bx_bool ResizeColmns; // address/value column autosize flag
|
||||||
unsigned CpuMode = 0;
|
extern bx_bool FWflag; // friendly warning has been shown to user once already
|
||||||
Bit32u InPaging = 0; // Storage for the top bit of CR0, unmodified
|
extern int StackSized; // autosize flag for stack window
|
||||||
|
|
||||||
bx_bool doOneTimeInit = TRUE; // Internal flags
|
extern char *PrevStack; // buffer for testing changes in stack values
|
||||||
bx_bool ResizeColmns; // address/value column autosize flag
|
extern Bit64u PStackLA; // to calculate alignment between prev and current stack
|
||||||
bx_bool dbgOn = FALSE; // the bochs internal debugger needs some time to get started
|
extern bx_bool StackEntChg[STACK_ENTRIES]; // flag for "change detected" on each stack line
|
||||||
bx_bool FWflag = FALSE; // friendly warning has been shown to user once already
|
extern bx_bool StkInvOnce; // sometimes need to specially invalidate the stack window
|
||||||
int StackSized; // autosize flag for stack window
|
|
||||||
|
|
||||||
char *PrevStack; // buffer for testing changes in stack values
|
// List Window indexes = DockOrder window numbers -1
|
||||||
Bit64u PStackLA = 0; // to calculate alignment between prev and current stack
|
#define REG_WND 0
|
||||||
bx_bool StackEntChg[STACK_ENTRIES]; // flag for "change detected" on each stack line
|
#define ASM_WND 1
|
||||||
bx_bool StkInvOnce = FALSE; // sometimes need to specially invalidate the stack window
|
#define DUMP_WND 2
|
||||||
|
|
||||||
// DViewModes
|
// DViewModes
|
||||||
#define VIEW_MEMDUMP 0
|
#define VIEW_MEMDUMP 0
|
||||||
@ -181,41 +116,42 @@ bx_bool StkInvOnce = FALSE; // sometimes need to specially invalidate th
|
|||||||
#define VIEW_IDT 2
|
#define VIEW_IDT 2
|
||||||
#define VIEW_PAGING 3
|
#define VIEW_PAGING 3
|
||||||
#define VIEW_STACK 4
|
#define VIEW_STACK 4
|
||||||
#define VIEW_PTREE 5
|
#define VIEW_BREAK 5
|
||||||
|
#define VIEW_PTREE 6
|
||||||
|
|
||||||
bx_bool DumpInitted = FALSE; // has the MemDump window ever been filled with data?
|
extern bx_bool DumpInitted; // has the MemDump window ever been filled with data?
|
||||||
int DumpAlign = 1;
|
extern int DumpAlign;
|
||||||
int PrevDAD; // saves "previous DumpAlign value" (forces column autosize)
|
extern int PrevDAD; // saves "previous DumpAlign value" (forces column autosize)
|
||||||
char *DataDump;
|
extern char *DataDump;
|
||||||
Bit64u DumpStart = 0; // current emulated address (lin or phys) of DataDump
|
extern Bit64u DumpStart; // current emulated address (lin or phys) of DataDump
|
||||||
bx_bool doDumpRefresh;
|
extern bx_bool doDumpRefresh;
|
||||||
int DViewMode = VIEW_MEMDUMP;
|
extern int DViewMode;
|
||||||
bx_bool DumpMode = 1; // 0 physical, 1 linear
|
extern bx_bool LinearDump; // FALSE = memdump uses physical addressing
|
||||||
char* DC0txt[2] = {"P.Address","L.Address"}; // DumpMode definitions in text
|
|
||||||
|
|
||||||
// make some global 512b temp char buffers -- they are needed to test against overflows anyway
|
extern char *tmpcb; // 512b is allocated in bigbuf
|
||||||
char *tmpcb, *tmpcd; // space is allocated in bigbuf
|
extern char *AsmData; // 5K for binary disassembly data
|
||||||
char *tmpce, *tmpcf; // exclusively for use in subthreads
|
extern char *CurStack; // Stack workspace (400b usually)
|
||||||
char *AsciiHex; // Unsigned char to printable hex xlat table
|
extern char *AsciiHex; // Unsigned char to printable hex xlat table
|
||||||
|
|
||||||
#define outbufSIZE 30720
|
#define outbufSIZE 40960
|
||||||
char bigbuf[outbufSIZE]; // 30K preallocated storage for all char buffers (see DoAllInit)
|
extern char bigbuf[outbufSIZE]; // 40K preallocated storage for all char buffers (see DoAllInit)
|
||||||
char *DbgAppendPtr = bigbuf;
|
extern char *DbgAppendPtr;
|
||||||
char *OutWindow; // buffer for the Output window
|
extern char *OutWindow; // buffer for the Output window
|
||||||
#define OutWinSIZE 10240
|
#define OutWinSIZE 10240
|
||||||
int OutWinCnt = OutWinSIZE; // available size of OutWindow buffer
|
extern int OutWinCnt; // available size of OutWindow buffer
|
||||||
int PO_Tdelay = 0; // delay before displaying partial output lines
|
extern int PO_Tdelay; // delay before displaying partial output lines
|
||||||
|
|
||||||
int AsmLineCount = 1; // # of disassembled asm lines loaded
|
extern int AsmLineCount; // # of disassembled asm lines loaded
|
||||||
int AsmPgSize = 0;
|
extern int AsmPgSize;
|
||||||
int ListLineRatio; // number of vertical pixels in a ListView Item
|
extern int ListLineRatio; // number of vertical pixels in a ListView Item
|
||||||
int ListVerticalPix; // number of vertical pixels in each List
|
extern int ListVerticalPix; // number of vertical pixels in each List
|
||||||
Bit64u AsmLA[MAX_ASM]; // linear address of each disassembled ASM line
|
extern Bit64u AsmLA[MAX_ASM]; // linear address of each disassembled ASM line
|
||||||
|
|
||||||
// Command stuff
|
// Command stuff
|
||||||
int CommandHistoryIdx = 0;
|
extern int CommandHistoryIdx;
|
||||||
char *CmdHistory[64]; // 64 command History storage (fixed 80b each)
|
#define CmdHistorySize 64
|
||||||
int CmdHInsert = 0; // index of next history entry to store
|
extern char *CmdHistory[CmdHistorySize]; // 64 command History storage (fixed 80b each)
|
||||||
|
extern int CmdHInsert; // index of next history entry to store
|
||||||
|
|
||||||
// register storage -- names and values
|
// register storage -- names and values
|
||||||
#define RAX_Rnum 0
|
#define RAX_Rnum 0
|
||||||
@ -320,71 +256,35 @@ int CmdHInsert = 0; // index of next history entry to store
|
|||||||
#define XMMF_hi 96
|
#define XMMF_hi 96
|
||||||
#define EXTRA_REGS 28
|
#define EXTRA_REGS 28
|
||||||
|
|
||||||
char * EflBName[16] = {
|
extern char* RDispName[EFER_Rnum + 1];
|
||||||
"cf", "pf", "af", "zf", "sf", "tf", "if", "df", "of", "nt", "rf", "vm", "ac", "vif", "vip", "id"
|
extern bx_param_num_c *RegObject[BX_MAX_SMP_THREADS_SUPPORTED][TOT_REG_NUM + EXTRA_REGS];
|
||||||
};
|
extern Bit64u rV[EFER_Rnum + 1]; // current values of registers
|
||||||
int EflBNameLen[16] = {
|
extern Bit64u PV[EFER_Rnum + 1]; // previous values of registers
|
||||||
2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2
|
extern Bit32s GDT_Len; // "limits" (= bytesize-1) for GDT and IDT
|
||||||
};
|
extern Bit32s IDT_Len;
|
||||||
int EflBitVal[16] = {
|
extern Bit8u RegColor[TOT_REG_NUM]; // specifies foreground and background color of registers
|
||||||
1, 4, 0x10, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x4000, 0x10000, 0x20000, 0x40000, 0x80000, 0x100000, 0x200000
|
|
||||||
};
|
|
||||||
|
|
||||||
// only pay special attention to registers up to EFER
|
|
||||||
char* RegLCName[EFER_Rnum + 1] = {
|
|
||||||
"rax","rbx","rcx","rdx","rsi","rdi","rbp","rsp","rip",
|
|
||||||
"r8","r9","r10","r11","r12","r13","r14","r15",
|
|
||||||
"eflags","eax","ebx","ecx","edx","esi","edi","ebp","esp","eip",
|
|
||||||
"cs","ds","es","ss","fs","gs",
|
|
||||||
"gdtr","idtr","ldtr","tr","cr0","cr3","cr4","efer"
|
|
||||||
};
|
|
||||||
char* RDispName[EFER_Rnum + 1];
|
|
||||||
bx_param_num_c *RegObject[BX_MAX_SMP_THREADS_SUPPORTED][TOT_REG_NUM + EXTRA_REGS];
|
|
||||||
Bit64u rV[EFER_Rnum + 1]; // current values of registers
|
|
||||||
Bit64u PV[EFER_Rnum + 1]; // previous values of registers
|
|
||||||
Bit32s GDT_Len; // "limits" (= bytesize-1) for GDT and IDT
|
|
||||||
Bit32s IDT_Len;
|
|
||||||
Bit8u RegColor[TOT_REG_NUM]; // specifies foreground and background color of registers
|
|
||||||
// Text color is red if the upper bit is set. Background is set according to ColorList.
|
// Text color is red if the upper bit is set. Background is set according to ColorList.
|
||||||
int RitemToRnum[TOT_REG_NUM]; // mapping from Reg List Item# to register number
|
extern int RitemToRnum[TOT_REG_NUM]; // mapping from Reg List Item# to register number
|
||||||
|
|
||||||
// lviG is a generic ListViewItem with GroupID -- reused many times
|
extern Bit64u ladrmin; // bochs linear addressing access variables
|
||||||
LV_ITEM lviG = {LVIF_TEXT | LVIF_GROUPID,0,0,0,0,(LPSTR)0,0,0,0};
|
extern Bit64u ladrmax;
|
||||||
|
extern Bit64u l_p_offset;
|
||||||
TVINSERTSTRUCT tvis; // tree-view generic item
|
|
||||||
|
|
||||||
Bit64u ladrmin = 0; // bochs linear addressing access variables
|
|
||||||
Bit64u ladrmax = 0;
|
|
||||||
Bit64u l_p_offset;
|
|
||||||
|
|
||||||
#define BTN_BASE 1024
|
|
||||||
#define MULTICPU_BTN_BASE 1030
|
|
||||||
int BtnLkup[6] = {
|
|
||||||
CMD_CONT, CMD_STEP1, CMD_STEPN, CMD_BREAK, CMD_RFRSH, CMD_BRKALL
|
|
||||||
};
|
|
||||||
char* BTxt[6] = {"Continue [c]","Step [s]","Step N [s ###]","Break [^C]","Refresh","Break All"};
|
|
||||||
char* GDTt2[8] = {"16-bit code","64-bit code","32-bit code","16-bit data","64-bit data","32-bit data","Illegal","Unused"};
|
|
||||||
char* GDTsT[] = { "","Available 16bit TSS","LDT","Busy 16bit TSS","16bit Call Gate",
|
|
||||||
"Task Gate","16bit Interrupt Gate","16bit Trap Gate","Reserved",
|
|
||||||
"Available 32bit TSS","Reserved","Busy 32bit TSS","32bit Call Gate",
|
|
||||||
"Reserved","32bit Interrupt Gate","32bit Trap Gate"
|
|
||||||
};
|
|
||||||
// Register hex display formats -- index by UprCase
|
|
||||||
char* Fmt64b[2] = { "%016I64x", "%016I64X" };
|
|
||||||
char* Fmt32b[2] = { "%08x", "%08X" };
|
|
||||||
char* Fmt16b[2] = { "%04x", "%04X" };
|
|
||||||
char* xDT64Fmt[2] = { "%016I64x (%4x)", "%016I64X (%4X)" };
|
|
||||||
char* xDT32Fmt[2] = { "%08x (%4x)", "%08X (%4X)" };
|
|
||||||
|
|
||||||
// do the linear breakpoint list as 2 arrays, rather than a structure -- much easier to search!
|
// do the linear breakpoint list as 2 arrays, rather than a structure -- much easier to search!
|
||||||
bx_address BrkLAddr[BX_DBG_MAX_LIN_BPOINTS];
|
extern bx_address BrkLAddr[BX_DBG_MAX_LIN_BPOINTS];
|
||||||
unsigned int BrkIdx[BX_DBG_MAX_LIN_BPOINTS];
|
extern unsigned BrkIdx[BX_DBG_MAX_LIN_BPOINTS];
|
||||||
int BreakCount = 0;
|
extern int BreakCount;
|
||||||
|
|
||||||
// AskTest stuff
|
// Breakpoint Dump Window stuff
|
||||||
struct ASKTEXT {
|
extern unsigned short BrkpIDMap[256];
|
||||||
const TCHAR* ti;
|
extern unsigned short WWP_BaseEntry;
|
||||||
const TCHAR* as;
|
extern unsigned short RWP_BaseEntry;
|
||||||
TCHAR* re;
|
extern unsigned short EndLinEntry;
|
||||||
int DefT;
|
extern unsigned short EndPhyEntry;
|
||||||
};
|
extern unsigned short WWPSnapCount;
|
||||||
|
extern unsigned short RWPSnapCount;
|
||||||
|
extern bx_phy_address WWP_Snapshot[16];
|
||||||
|
extern bx_phy_address RWP_Snapshot[16];
|
||||||
|
extern char UCtable[256];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,55 +1,68 @@
|
|||||||
|
#ifndef BX_ENH_DBG_RES_H
|
||||||
|
#define BX_ENH_DBG_RES_H
|
||||||
|
|
||||||
// The menuIDs should not have big "gaps" -- so the switch works well.
|
// The menuIDs should not have big "gaps" -- so the switch works well.
|
||||||
// A few small gaps is OK.
|
// A few small gaps is OK.
|
||||||
#define CMD_CONT 101
|
#define CMD_CONT 101
|
||||||
#define CMD_STEP1 102
|
#define CMD_STEP1 102
|
||||||
#define CMD_STEPN 103
|
#define CMD_STEPN 103
|
||||||
|
#define CMD_BREAK 104
|
||||||
|
|
||||||
#define CMD_BREAK 105
|
|
||||||
#define CMD_BRKALL 106
|
|
||||||
#define CMD_BRKPT 107
|
#define CMD_BRKPT 107
|
||||||
#define CMD_WPTWR 108
|
#define CMD_WPTWR 108
|
||||||
#define CMD_WPTRD 109
|
#define CMD_WPTRD 109
|
||||||
#define CMD_FIND 110
|
#define CMD_FIND 110
|
||||||
#define CMD_RFRSH 111
|
#define CMD_RFRSH 111
|
||||||
|
// View Menu:
|
||||||
#define CMD_PHYDMP 113
|
#define CMD_PHYDMP 113
|
||||||
#define CMD_LINDMP 114
|
#define CMD_LINDMP 114
|
||||||
#define CMD_STACK 115
|
#define CMD_STACK 115
|
||||||
#define CMD_GDTV 116
|
#define CMD_GDTV 116
|
||||||
#define CMD_IDTV 117
|
#define CMD_IDTV 117
|
||||||
#define CMD_PAGEV 118
|
#define CMD_PAGEV 118
|
||||||
#define CMD_CMEM 119
|
#define CMD_VBRK 120
|
||||||
#define CMD_PTREE 120
|
#define CMD_CMEM 121
|
||||||
#define CMD_DISASM 121
|
#define CMD_PTREE 122
|
||||||
// It is important that all the menuIDs on the "Options" menu be higher than on any other menu
|
#define CMD_DISASM 123
|
||||||
// It is important that CMD_MODEB be the lowest menuID on the option window
|
// Options Menu:
|
||||||
#define CMD_MODEB 123
|
#define CMD_MODEB 125
|
||||||
#define CMD_DADEF 124
|
#define CMD_XCEPT 126
|
||||||
#define CMD_ATTI 125
|
#define CMD_ONECPU 127
|
||||||
#define CMD_FONT 126
|
#define CMD_DADEF 128
|
||||||
#define CMD_IOWIN 127
|
#define CMD_ATTI 129
|
||||||
#define CMD_SBTN 128
|
#define CMD_FONT 130
|
||||||
#define CMD_UCASE 129
|
#define CMD_UCASE 131
|
||||||
#define CMD_MHEX 130
|
#define CMD_IOWIN 132
|
||||||
#define CMD_MASCII 131
|
#define CMD_SBTN 133
|
||||||
#define CMD_LEND 132
|
#define CMD_MHEX 134
|
||||||
// The CMD_WS menuID's must be strictly "contiguous" and in-order
|
#define CMD_MASCII 135
|
||||||
#define CMD_WS_1 133
|
#define CMD_LEND 136
|
||||||
#define CMD_WS_2 134
|
|
||||||
#define CMD_WS_4 135
|
#define CMD_IGNSA 139
|
||||||
#define CMD_WS_8 136
|
#define CMD_IGNNT 140
|
||||||
#define CMD_WS16 137
|
#define CMD_RCLR 141
|
||||||
#define CMD_IGNSA 138
|
|
||||||
#define CMD_IGNNT 139
|
|
||||||
#define CMD_RCLR 140
|
|
||||||
// The next 8 menuID's must be strictly "contiguous" and in-order
|
// The next 8 menuID's must be strictly "contiguous" and in-order
|
||||||
#define CMD_EREG 141
|
#define CMD_EREG 142
|
||||||
#define CMD_SREG 142
|
#define CMD_SREG 143
|
||||||
#define CMD_SYSR 143
|
#define CMD_SYSR 144
|
||||||
#define CMD_CREG 144
|
#define CMD_CREG 145
|
||||||
#define CMD_FPUR 145
|
#define CMD_FPUR 146
|
||||||
#define CMD_XMMR 146
|
#define CMD_XMMR 147
|
||||||
#define CMD_DREG 147
|
#define CMD_DREG 148
|
||||||
#define CMD_TREG 148
|
#define CMD_TREG 149
|
||||||
|
|
||||||
#define CMD_ABOUT 149
|
#define CMD_ABOUT 150
|
||||||
|
|
||||||
|
// The CMD_WS popup menuID's must be strictly "contiguous" and in-order
|
||||||
|
#define CMD_WS_1 160
|
||||||
|
#define CMD_WS_2 161
|
||||||
|
#define CMD_WS_4 162
|
||||||
|
#define CMD_WS_8 163
|
||||||
|
#define CMD_WS16 164
|
||||||
|
|
||||||
|
#define MI_FIRST_VIEWITEM CMD_PHYDMP
|
||||||
|
#define MI_FIRST_OPTITEM CMD_MODEB
|
||||||
|
#define CMD_IDX_HI CMD_WS16
|
||||||
|
#define CMD_IDX_LO CMD_CONT
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: win32.cc,v 1.121 2008-10-06 22:00:11 sshwarts Exp $
|
// $Id: win32.cc,v 1.122 2008-12-27 12:06:39 sshwarts Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2002 MandrakeSoft S.A.
|
// Copyright (C) 2002 MandrakeSoft S.A.
|
||||||
@ -178,7 +178,7 @@ static BOOL BxTextMode = TRUE;
|
|||||||
static BOOL legacyF12 = FALSE;
|
static BOOL legacyF12 = FALSE;
|
||||||
static BOOL fix_size = FALSE;
|
static BOOL fix_size = FALSE;
|
||||||
#if BX_DEBUGGER
|
#if BX_DEBUGGER
|
||||||
static BOOL windebug = FALSE;
|
static BOOL gui_debug = FALSE;
|
||||||
#endif
|
#endif
|
||||||
static HWND hotKeyReceiver = NULL;
|
static HWND hotKeyReceiver = NULL;
|
||||||
static HWND saveParent = NULL;
|
static HWND saveParent = NULL;
|
||||||
@ -655,8 +655,8 @@ void bx_win32_gui_c::specific_init(int argc, char **argv, unsigned
|
|||||||
if (!strcmp(argv[i], "legacyF12")) {
|
if (!strcmp(argv[i], "legacyF12")) {
|
||||||
legacyF12 = TRUE;
|
legacyF12 = TRUE;
|
||||||
#if BX_DEBUGGER
|
#if BX_DEBUGGER
|
||||||
} else if (!strcmp(argv[i], "windebug")) {
|
} else if (!strcmp(argv[i], "gui_debug")) {
|
||||||
windebug = TRUE;
|
gui_debug = TRUE;
|
||||||
SIM->set_debug_gui(1);
|
SIM->set_debug_gui(1);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
@ -920,7 +920,7 @@ VOID CDECL UIThread(PVOID pvoid)
|
|||||||
resize_main_window();
|
resize_main_window();
|
||||||
ShowWindow(stInfo.mainWnd, SW_SHOW);
|
ShowWindow(stInfo.mainWnd, SW_SHOW);
|
||||||
#if BX_DEBUGGER
|
#if BX_DEBUGGER
|
||||||
if (windebug) {
|
if (gui_debug) {
|
||||||
InitDebugDialog(stInfo.mainWnd);
|
InitDebugDialog(stInfo.mainWnd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
1805
bochs/gui/win32_enh_dbg_osdep.cc
Executable file
1805
bochs/gui/win32_enh_dbg_osdep.cc
Executable file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: win32dialog.cc,v 1.64 2008-12-18 15:37:25 vruppert Exp $
|
// $Id: win32dialog.cc,v 1.65 2008-12-27 12:06:39 sshwarts Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "win32dialog.h"
|
#include "win32dialog.h"
|
||||||
@ -15,8 +15,8 @@ static bxevent_handler old_callback = NULL;
|
|||||||
static void *old_callback_arg = NULL;
|
static void *old_callback_arg = NULL;
|
||||||
#if BX_DEBUGGER
|
#if BX_DEBUGGER
|
||||||
HWND hDebugDialog = NULL;
|
HWND hDebugDialog = NULL;
|
||||||
char *debug_cmd = NULL;
|
extern char *debug_cmd;
|
||||||
BOOL debug_cmd_ready = FALSE;
|
extern bx_bool debug_cmd_ready;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int AskFilename(HWND hwnd, bx_param_filename_c *param, const char *ext);
|
int AskFilename(HWND hwnd, bx_param_filename_c *param, const char *ext);
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: win32dialog.h,v 1.12 2008-10-21 13:45:03 sshwarts Exp $
|
// $Id: win32dialog.h,v 1.13 2008-12-27 12:06:39 sshwarts Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef BX_WIN32_DIALOGS_H
|
||||||
|
#define BX_WIN32_DIALOGS_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#ifndef _WIN32_IE
|
#ifndef _WIN32_IE
|
||||||
@ -25,9 +28,11 @@ extern "C" {
|
|||||||
|
|
||||||
int RuntimeOptionsDialog();
|
int RuntimeOptionsDialog();
|
||||||
#if BX_DEBUGGER
|
#if BX_DEBUGGER
|
||||||
void InitDebugDialog(HWND mainwnd);
|
void InitDebugDialog(void* mainwnd);
|
||||||
void RefreshDebugDialog();
|
void RefreshDebugDialog();
|
||||||
#endif
|
#endif
|
||||||
void win32_init_notify_callback();
|
void win32_init_notify_callback();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif // BX_WIN32_DIALOGS_H
|
||||||
|
Loading…
Reference in New Issue
Block a user