Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
a27d0aa4
Commit
a27d0aa4
authored
Sep 20, 2006
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Added definitions for the fault address exception information.
parent
530e7650
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
7 deletions
+38
-7
except.c
dlls/kernel32/except.c
+5
-4
signal_i386.c
dlls/ntdll/signal_i386.c
+2
-1
dib.c
dlls/winex11.drv/dib.c
+1
-1
winnt.h
include/winnt.h
+28
-0
tgt_active.c
programs/winedbg/tgt_active.c
+2
-1
No files found.
dlls/kernel32/except.c
View file @
a27d0aa4
...
...
@@ -117,8 +117,9 @@ static int format_exception_msg( const EXCEPTION_POINTERS *ptr, char *buffer, in
case
EXCEPTION_ACCESS_VIOLATION
:
if
(
rec
->
NumberParameters
==
2
)
len
=
snprintf
(
buffer
,
size
,
"Unhandled page fault on %s access to 0x%08lx"
,
rec
->
ExceptionInformation
[
0
]
?
"write"
:
"read"
,
rec
->
ExceptionInformation
[
1
]);
rec
->
ExceptionInformation
[
0
]
==
EXCEPTION_WRITE_FAULT
?
"write"
:
rec
->
ExceptionInformation
[
0
]
==
EXCEPTION_EXECUTE_FAULT
?
"execute"
:
"read"
,
rec
->
ExceptionInformation
[
1
]);
else
len
=
snprintf
(
buffer
,
size
,
"Unhandled page fault"
);
break
;
...
...
@@ -448,11 +449,11 @@ LONG WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers)
{
switch
(
rec
->
ExceptionInformation
[
0
])
{
case
1
:
/* write access */
case
EXCEPTION_WRITE_FAULT
:
if
(
check_resource_write
(
(
void
*
)
rec
->
ExceptionInformation
[
1
]
))
return
EXCEPTION_CONTINUE_EXECUTION
;
break
;
case
8
:
/* execute access */
case
EXCEPTION_EXECUTE_FAULT
:
if
(
check_no_exec
(
(
void
*
)
rec
->
ExceptionInformation
[
1
]
))
return
EXCEPTION_CONTINUE_EXECUTION
;
break
;
...
...
dlls/ntdll/signal_i386.c
View file @
a27d0aa4
...
...
@@ -970,7 +970,8 @@ static void WINAPI raise_segv_exception( EXCEPTION_RECORD *rec, CONTEXT *context
case
EXCEPTION_ACCESS_VIOLATION
:
if
(
rec
->
NumberParameters
==
2
)
{
if
((
rec
->
ExceptionInformation
[
0
]
==
8
)
&&
check_atl_thunk
(
rec
,
context
))
goto
done
;
if
(
rec
->
ExceptionInformation
[
0
]
==
EXCEPTION_EXECUTE_FAULT
&&
check_atl_thunk
(
rec
,
context
))
goto
done
;
rec
->
ExceptionCode
=
VIRTUAL_HandleFault
(
(
void
*
)
rec
->
ExceptionInformation
[
1
]
);
}
break
;
...
...
dlls/winex11.drv/dib.c
View file @
a27d0aa4
...
...
@@ -4359,7 +4359,7 @@ static LONG CALLBACK X11DRV_DIB_FaultHandler( PEXCEPTION_POINTERS ep )
if
(
!
found
)
return
EXCEPTION_CONTINUE_SEARCH
;
X11DRV_DIB_Lock
(
physBitmap
,
DIB_Status_None
,
FALSE
);
if
(
ep
->
ExceptionRecord
->
ExceptionInformation
[
0
])
{
if
(
ep
->
ExceptionRecord
->
ExceptionInformation
[
0
]
==
EXCEPTION_WRITE_FAULT
)
{
/* the app tried to write the DIB bits */
X11DRV_DIB_Coerce
(
physBitmap
,
DIB_Status_AppMod
,
FALSE
);
}
else
{
...
...
include/winnt.h
View file @
a27d0aa4
...
...
@@ -714,6 +714,10 @@ typedef struct _CONTEXT86
typedef
CONTEXT86
CONTEXT
;
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
#endif
/* __i386__ */
typedef
struct
_LDT_ENTRY
{
...
...
@@ -754,6 +758,10 @@ typedef struct _LDT_ENTRY {
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
typedef
struct
DECLSPEC_ALIGN
(
16
)
_M128A
{
ULONGLONG
Low
;
LONGLONG
High
;
...
...
@@ -877,6 +885,10 @@ typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
#define CONTEXT_INTEGER (CONTEXT_ALPHA | 0x00000004L)
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
typedef
struct
_CONTEXT
{
/* selected by CONTEXT_FLOATING_POINT */
...
...
@@ -973,6 +985,10 @@ typedef struct _CONTEXT
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
typedef
struct
_CONTEXT
{
/* The flags values within this flag control the contents of
a CONTEXT record.
...
...
@@ -1028,6 +1044,10 @@ typedef struct _CONTEXT {
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
typedef
struct
_CONTEXT
{
DWORD
Argument
[
4
];
...
...
@@ -1123,6 +1143,10 @@ typedef struct _CONTEXT
#define CONTEXT_DEBUG_REGISTERS 0x0008
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
typedef
struct
{
/* These are selected by CONTEXT_FLOATING_POINT */
...
...
@@ -1267,6 +1291,10 @@ typedef struct _STACK_FRAME_HEADER
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
#define EXCEPTION_READ_FAULT 0
#define EXCEPTION_WRITE_FAULT 1
#define EXCEPTION_EXECUTE_FAULT 8
typedef
struct
_CONTEXT
{
DWORD
ContextFlags
;
...
...
programs/winedbg/tgt_active.c
View file @
a27d0aa4
...
...
@@ -307,7 +307,8 @@ static DWORD dbg_handle_exception(const EXCEPTION_RECORD* rec, BOOL first_chance
case
EXCEPTION_ACCESS_VIOLATION
:
if
(
rec
->
NumberParameters
==
2
)
dbg_printf
(
"page fault on %s access to 0x%08lx"
,
rec
->
ExceptionInformation
[
0
]
?
"write"
:
"read"
,
rec
->
ExceptionInformation
[
0
]
==
EXCEPTION_WRITE_FAULT
?
"write"
:
rec
->
ExceptionInformation
[
0
]
==
EXCEPTION_EXECUTE_FAULT
?
"execute"
:
"read"
,
rec
->
ExceptionInformation
[
1
]);
else
dbg_printf
(
"page fault"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment