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
51e9951a
Commit
51e9951a
authored
Mar 24, 2010
by
Eric Pouech
Committed by
Alexandre Julliard
Mar 25, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Enhanced x86_64 stack unwinding with PE's function table data.
parent
ad68792a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
5 additions
and
5 deletions
+5
-5
cpu_i386.c
dlls/dbghelp/cpu_i386.c
+1
-1
cpu_ppc.c
dlls/dbghelp/cpu_ppc.c
+1
-1
cpu_x86_64.c
dlls/dbghelp/cpu_x86_64.c
+0
-0
dbghelp_private.h
dlls/dbghelp/dbghelp_private.h
+1
-1
stack.c
dlls/dbghelp/stack.c
+2
-2
No files found.
dlls/dbghelp/cpu_i386.c
View file @
51e9951a
...
@@ -98,7 +98,7 @@ enum st_mode {stm_start, stm_32bit, stm_16bit, stm_done};
...
@@ -98,7 +98,7 @@ enum st_mode {stm_start, stm_32bit, stm_16bit, stm_done};
#define curr_switch (frame->Reserved[__CurrentSwitch])
#define curr_switch (frame->Reserved[__CurrentSwitch])
#define next_switch (frame->Reserved[__NextSwitch])
#define next_switch (frame->Reserved[__NextSwitch])
static
BOOL
i386_stack_walk
(
struct
cpu_stack_walk
*
csw
,
LPSTACKFRAME64
frame
)
static
BOOL
i386_stack_walk
(
struct
cpu_stack_walk
*
csw
,
LPSTACKFRAME64
frame
,
CONTEXT
*
context
)
{
{
STACK32FRAME
frame32
;
STACK32FRAME
frame32
;
STACK16FRAME
frame16
;
STACK16FRAME
frame16
;
...
...
dlls/dbghelp/cpu_ppc.c
View file @
51e9951a
...
@@ -48,7 +48,7 @@ static unsigned ppc_get_addr(HANDLE hThread, const CONTEXT* ctx,
...
@@ -48,7 +48,7 @@ static unsigned ppc_get_addr(HANDLE hThread, const CONTEXT* ctx,
return
FALSE
;
return
FALSE
;
}
}
static
BOOL
ppc_stack_walk
(
struct
cpu_stack_walk
*
csw
,
LPSTACKFRAME64
frame
)
static
BOOL
ppc_stack_walk
(
struct
cpu_stack_walk
*
csw
,
LPSTACKFRAME64
frame
,
CONTEXT
*
context
)
{
{
FIXME
(
"not done
\n
"
);
FIXME
(
"not done
\n
"
);
return
FALSE
;
return
FALSE
;
...
...
dlls/dbghelp/cpu_x86_64.c
View file @
51e9951a
This diff is collapsed.
Click to expand it.
dlls/dbghelp/dbghelp_private.h
View file @
51e9951a
...
@@ -474,7 +474,7 @@ struct cpu
...
@@ -474,7 +474,7 @@ struct cpu
enum
cpu_addr
,
ADDRESS64
*
addr
);
enum
cpu_addr
,
ADDRESS64
*
addr
);
/* stack manipulation */
/* stack manipulation */
BOOL
(
*
stack_walk
)(
struct
cpu_stack_walk
*
csw
,
LPSTACKFRAME64
frame
);
BOOL
(
*
stack_walk
)(
struct
cpu_stack_walk
*
csw
,
LPSTACKFRAME64
frame
,
CONTEXT
*
context
);
/* module manipulation */
/* module manipulation */
void
*
(
*
find_runtime_function
)(
struct
module
*
,
DWORD64
addr
);
void
*
(
*
find_runtime_function
)(
struct
module
*
,
DWORD64
addr
);
...
...
dlls/dbghelp/stack.c
View file @
51e9951a
...
@@ -180,7 +180,7 @@ BOOL WINAPI StackWalk(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
...
@@ -180,7 +180,7 @@ BOOL WINAPI StackWalk(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
csw
.
u
.
s32
.
f_tabl_acs
=
(
FunctionTableAccessRoutine
)
?
FunctionTableAccessRoutine
:
SymFunctionTableAccess
;
csw
.
u
.
s32
.
f_tabl_acs
=
(
FunctionTableAccessRoutine
)
?
FunctionTableAccessRoutine
:
SymFunctionTableAccess
;
csw
.
u
.
s32
.
f_modl_bas
=
(
GetModuleBaseRoutine
)
?
GetModuleBaseRoutine
:
SymGetModuleBase
;
csw
.
u
.
s32
.
f_modl_bas
=
(
GetModuleBaseRoutine
)
?
GetModuleBaseRoutine
:
SymGetModuleBase
;
if
((
ret
=
cpu
->
stack_walk
(
&
csw
,
&
frame64
)))
if
((
ret
=
cpu
->
stack_walk
(
&
csw
,
&
frame64
,
ctx
)))
{
{
addr_64to32
(
&
frame64
.
AddrPC
,
&
frame32
->
AddrPC
);
addr_64to32
(
&
frame64
.
AddrPC
,
&
frame32
->
AddrPC
);
addr_64to32
(
&
frame64
.
AddrReturn
,
&
frame32
->
AddrReturn
);
addr_64to32
(
&
frame64
.
AddrReturn
,
&
frame32
->
AddrReturn
);
...
@@ -236,7 +236,7 @@ BOOL WINAPI StackWalk64(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
...
@@ -236,7 +236,7 @@ BOOL WINAPI StackWalk64(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
csw
.
u
.
s64
.
f_tabl_acs
=
(
FunctionTableAccessRoutine
)
?
FunctionTableAccessRoutine
:
SymFunctionTableAccess64
;
csw
.
u
.
s64
.
f_tabl_acs
=
(
FunctionTableAccessRoutine
)
?
FunctionTableAccessRoutine
:
SymFunctionTableAccess64
;
csw
.
u
.
s64
.
f_modl_bas
=
(
GetModuleBaseRoutine
)
?
GetModuleBaseRoutine
:
SymGetModuleBase64
;
csw
.
u
.
s64
.
f_modl_bas
=
(
GetModuleBaseRoutine
)
?
GetModuleBaseRoutine
:
SymGetModuleBase64
;
if
(
!
cpu
->
stack_walk
(
&
csw
,
frame
))
return
FALSE
;
if
(
!
cpu
->
stack_walk
(
&
csw
,
frame
,
ctx
))
return
FALSE
;
/* we don't handle KdHelp */
/* we don't handle KdHelp */
frame
->
KdHelp
.
Thread
=
0xC000FADE
;
frame
->
KdHelp
.
Thread
=
0xC000FADE
;
...
...
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