Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
99439e75
Commit
99439e75
authored
Jan 08, 2011
by
Eric Pouech
Committed by
Alexandre Julliard
Jan 10, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Added preliminary extended FPO information out of PDB files.
parent
5ce195ae
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
340 additions
and
2 deletions
+340
-2
cpu_i386.c
dlls/dbghelp/cpu_i386.c
+30
-2
dbghelp_private.h
dlls/dbghelp/dbghelp_private.h
+6
-0
msc.c
dlls/dbghelp/msc.c
+304
-0
No files found.
dlls/dbghelp/cpu_i386.c
View file @
99439e75
...
...
@@ -214,7 +214,8 @@ static BOOL i386_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CO
#ifdef __i386__
if
(
curr_mode
==
stm_32bit
)
{
DWORD_PTR
xframe
;
DWORD_PTR
xframe
;
struct
pdb_cmd_pair
cpair
[
4
];
if
(
dwarf2_virtual_unwind
(
csw
,
frame
->
AddrPC
.
Offset
-
deltapc
,
context
,
&
xframe
))
{
...
...
@@ -224,6 +225,19 @@ static BOOL i386_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CO
frame
->
AddrReturn
.
Offset
=
context
->
Eip
;
goto
done_pep
;
}
cpair
[
0
].
name
=
"$ebp"
;
cpair
[
0
].
pvalue
=
&
context
->
Ebp
;
cpair
[
1
].
name
=
"$esp"
;
cpair
[
1
].
pvalue
=
&
context
->
Esp
;
cpair
[
2
].
name
=
"$eip"
;
cpair
[
2
].
pvalue
=
&
context
->
Eip
;
cpair
[
3
].
name
=
NULL
;
cpair
[
3
].
pvalue
=
NULL
;
if
(
pdb_virtual_unwind
(
csw
,
frame
->
AddrPC
.
Offset
-
deltapc
,
context
,
cpair
))
{
frame
->
AddrStack
.
Mode
=
frame
->
AddrFrame
.
Mode
=
frame
->
AddrReturn
.
Mode
=
AddrModeFlat
;
frame
->
AddrStack
.
Offset
=
context
->
Esp
;
frame
->
AddrFrame
.
Offset
=
context
->
Ebp
;
frame
->
AddrReturn
.
Offset
=
context
->
Eip
;
goto
done_pep
;
}
}
#endif
}
...
...
@@ -353,7 +367,8 @@ static BOOL i386_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CO
else
{
#ifdef __i386__
DWORD_PTR
xframe
;
DWORD_PTR
xframe
;
struct
pdb_cmd_pair
cpair
[
4
];
if
(
dwarf2_virtual_unwind
(
csw
,
frame
->
AddrPC
.
Offset
-
deltapc
,
context
,
&
xframe
))
{
...
...
@@ -363,6 +378,19 @@ static BOOL i386_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CO
frame
->
AddrReturn
.
Offset
=
context
->
Eip
;
goto
done_pep
;
}
cpair
[
0
].
name
=
"$ebp"
;
cpair
[
0
].
pvalue
=
&
context
->
Ebp
;
cpair
[
1
].
name
=
"$esp"
;
cpair
[
1
].
pvalue
=
&
context
->
Esp
;
cpair
[
2
].
name
=
"$eip"
;
cpair
[
2
].
pvalue
=
&
context
->
Eip
;
cpair
[
3
].
name
=
NULL
;
cpair
[
3
].
pvalue
=
NULL
;
if
(
pdb_virtual_unwind
(
csw
,
frame
->
AddrPC
.
Offset
-
deltapc
,
context
,
cpair
))
{
frame
->
AddrStack
.
Mode
=
frame
->
AddrFrame
.
Mode
=
frame
->
AddrReturn
.
Mode
=
AddrModeFlat
;
frame
->
AddrStack
.
Offset
=
context
->
Esp
;
frame
->
AddrFrame
.
Offset
=
context
->
Ebp
;
frame
->
AddrReturn
.
Offset
=
context
->
Eip
;
goto
done_pep
;
}
#endif
frame
->
AddrStack
.
Offset
=
frame
->
AddrFrame
.
Offset
+
2
*
sizeof
(
DWORD
);
/* "pop up" previous EBP value */
...
...
dlls/dbghelp/dbghelp_private.h
View file @
99439e75
...
...
@@ -559,6 +559,12 @@ extern BOOL pe_load_debug_directory(const struct process* pcs,
const
IMAGE_SECTION_HEADER
*
sectp
,
DWORD
nsect
,
const
IMAGE_DEBUG_DIRECTORY
*
dbg
,
int
nDbg
);
extern
BOOL
pdb_fetch_file_info
(
const
struct
pdb_lookup
*
pdb_lookup
,
unsigned
*
matched
);
struct
pdb_cmd_pair
{
const
char
*
name
;
DWORD
*
pvalue
;
};
extern
BOOL
pdb_virtual_unwind
(
struct
cpu_stack_walk
*
csw
,
DWORD_PTR
ip
,
CONTEXT
*
context
,
struct
pdb_cmd_pair
*
cpair
);
/* path.c */
extern
BOOL
path_find_symbol_file
(
const
struct
process
*
pcs
,
PCSTR
full_path
,
...
...
dlls/dbghelp/msc.c
View file @
99439e75
This diff is collapsed.
Click to expand it.
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