Release 970101
Wed Jan 1 15:36:17 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [controls/listbox.c]
Use FindFirstFile/FindNextFile in LISTBOX_Directory.
* [files/dos_fs.c]
Rewrote FindFirstFile/FindNextFile to use DOSFS_FindNext().
* [files/file.c] [files/directory.c]
Use Win32 kernel objects and handles for file handles.
Unified SearchPath() and OpenFile().
* [loader/builtin.c]
Moved to if1632/ directory.
* [tools/build.c] [debugger/*] [miscemu/*]
Win16 register functions now receive the same CONTEXT * structure
as Win32 functions.
* [include/sigcontext.h] [miscemu/instr.c]
Added new macros to get register values from the SIGCONTEXT
structure (only used for instruction emulation now).
* [scheduler/process.c] [scheduler/thread.c] (New files)
Allocate process and thread structures.
* [scheduler/process.c] [win32/k32obj.c]
Added Win32 kernel objects and handles management.
* [loader/task.c]
Create a Win32 process and thread for every Win16 task.
* [misc/commdlg.c] [misc/shell.c] [windows/msgbox.c]
Built-in resources are now in Win32 format. This also avoids
16-bit callbacks for built-in dialogs.
* [misc/lzexpand.c]
Differentiate between 16-bit and 32-bit file handles.
* [miscemu/int*.c]
Moved all int emulation to msdos/ directory.
* [msdos/*]
New directory msdos/ contains all MS-DOS emulation code that can
also be used for Winelib; this should enable Winelib apps to use
DOS3Call and related functions.
* [rc/winerc.c]
A few bug fixes for Win32 resource format.
* [windows/winpos.c]
Hack in WINPOS_ReorderOwnerPopups() to avoid X crashed (still not
right though).
Sun Dec 29 17:47:55 1996 O. Flebbe <flebbe@science-computing.uni-tuebingen.de>
* [loader/pe_image.c]
Make sure BSS of a PE_Image is zero.
Sat Dec 28 22:15:34 1996 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [windows/scroll.c]
ScrollWindowEx() rewrite, ScrollDC() fix.
* [windows/nonclient.c] [controls/menu.c]
Fixed Alt-Space crashes in dialogs.
* [windows/event.c] [windows/message.c]
Some changes in mouse message generation.
Thu Dec 26 09:25:24 1996 Philippe De Muyter <phdm@info.ucl.ac.be>
* [debugger/stabs.c]
Dummy DEBUG_ReadExecutableDbgInfo provided for !__ELF__ case.
Tue Dec 24 00:59:05 MET 1996 Martin Buck <martin-2.buck@student.uni-ulm.de>
* [windows/event.c]
Changed XK_Page_{Up,Down} to XK_{Prior,Next} for X11R5
compatibility.
diff --git a/debugger/break.c b/debugger/break.c
index 8c727b4..eb97f6c 100644
--- a/debugger/break.c
+++ b/debugger/break.c
@@ -65,9 +65,10 @@
* Determine if the instruction at CS:EIP is an instruction that
* we need to step over (like a call or a repetitive string move).
*/
-static BOOL32 DEBUG_IsStepOverInstr( SIGCONTEXT *context )
+static BOOL32 DEBUG_IsStepOverInstr(void)
{
- BYTE *instr = (BYTE *)PTR_SEG_OFF_TO_LIN(CS_reg(context),EIP_reg(context));
+ BYTE *instr = (BYTE *)PTR_SEG_OFF_TO_LIN( CS_reg(&DEBUG_context),
+ EIP_reg(&DEBUG_context) );
for (;;)
{
@@ -182,7 +183,7 @@
int num;
BYTE *p;
- DBG_FIX_ADDR_SEG( &addr, CS_reg(DEBUG_context) );
+ DBG_FIX_ADDR_SEG( &addr, CS_reg(&DEBUG_context) );
if (next_bp < MAX_BREAKPOINTS)
num = next_bp++;
@@ -273,17 +274,17 @@
* Determine if we should continue execution after a SIGTRAP signal when
* executing in the given mode.
*/
-BOOL32 DEBUG_ShouldContinue( SIGCONTEXT *context, enum exec_mode mode )
+BOOL32 DEBUG_ShouldContinue( enum exec_mode mode )
{
DBG_ADDR addr;
int bpnum;
/* If not single-stepping, back up over the int3 instruction */
- if (!(EFL_reg(DEBUG_context) & STEP_FLAG)) EIP_reg(DEBUG_context)--;
+ if (!(EFL_reg(&DEBUG_context) & STEP_FLAG)) EIP_reg(&DEBUG_context)--;
- addr.seg = (CS_reg(DEBUG_context) == WINE_CODE_SELECTOR) ?
- 0 : CS_reg(DEBUG_context);
- addr.off = EIP_reg(DEBUG_context);
+ addr.seg = (CS_reg(&DEBUG_context) == WINE_CODE_SELECTOR) ?
+ 0 : CS_reg(&DEBUG_context);
+ addr.off = EIP_reg(&DEBUG_context);
bpnum = DEBUG_FindBreakpoint( &addr );
breakpoints[0].enabled = 0; /* disable the step-over breakpoint */
@@ -299,8 +300,8 @@
/* If there's no breakpoint and we are not single-stepping, then we */
/* must have encountered an int3 in the Windows program; let's skip it. */
- if ((bpnum == -1) && !(EFL_reg(DEBUG_context) & STEP_FLAG))
- EIP_reg(DEBUG_context)++;
+ if ((bpnum == -1) && !(EFL_reg(&DEBUG_context) & STEP_FLAG))
+ EIP_reg(&DEBUG_context)++;
/* no breakpoint, continue if in continuous mode */
return (mode == EXEC_CONT);
@@ -313,14 +314,13 @@
* Set the breakpoints to the correct state to restart execution
* in the given mode.
*/
-void DEBUG_RestartExecution( SIGCONTEXT *context, enum exec_mode mode,
- int instr_len )
+void DEBUG_RestartExecution( enum exec_mode mode, int instr_len )
{
DBG_ADDR addr;
- addr.seg = (CS_reg(DEBUG_context) == WINE_CODE_SELECTOR) ?
- 0 : CS_reg(DEBUG_context);
- addr.off = EIP_reg(DEBUG_context);
+ addr.seg = (CS_reg(&DEBUG_context) == WINE_CODE_SELECTOR) ?
+ 0 : CS_reg(&DEBUG_context);
+ addr.off = EIP_reg(&DEBUG_context);
if (DEBUG_FindBreakpoint( &addr ) != -1)
mode = EXEC_STEP_INSTR; /* If there's a breakpoint, skip it */
@@ -328,14 +328,14 @@
switch(mode)
{
case EXEC_CONT: /* Continuous execution */
- EFL_reg(DEBUG_context) &= ~STEP_FLAG;
+ EFL_reg(&DEBUG_context) &= ~STEP_FLAG;
DEBUG_SetBreakpoints( TRUE );
break;
case EXEC_STEP_OVER: /* Stepping over a call */
- if (DEBUG_IsStepOverInstr(DEBUG_context))
+ if (DEBUG_IsStepOverInstr())
{
- EFL_reg(DEBUG_context) &= ~STEP_FLAG;
+ EFL_reg(&DEBUG_context) &= ~STEP_FLAG;
addr.off += instr_len;
breakpoints[0].addr = addr;
breakpoints[0].enabled = TRUE;
@@ -347,7 +347,7 @@
/* else fall through to single-stepping */
case EXEC_STEP_INSTR: /* Single-stepping an instruction */
- EFL_reg(DEBUG_context) |= STEP_FLAG;
+ EFL_reg(&DEBUG_context) |= STEP_FLAG;
break;
}
}