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
4bcca691
Commit
4bcca691
authored
Nov 24, 2006
by
Eric Pouech
Committed by
Alexandre Julliard
Nov 27, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: When looking up for a local variable (or parameter), pass the function pointer.
parent
32c96add
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
10 deletions
+11
-10
symbol.c
dlls/dbghelp/symbol.c
+11
-10
No files found.
dlls/dbghelp/symbol.c
View file @
4bcca691
...
...
@@ -449,6 +449,7 @@ struct symt_thunk* symt_new_thunk(struct module* module,
/* expect sym_info->MaxNameLen to be set before being called */
static
void
symt_fill_sym_info
(
const
struct
module_pair
*
pair
,
const
struct
symt_function
*
func
,
const
struct
symt
*
sym
,
SYMBOL_INFO
*
sym_info
)
{
const
char
*
name
;
...
...
@@ -564,9 +565,9 @@ struct sym_enum
};
static
BOOL
send_symbol
(
const
struct
sym_enum
*
se
,
struct
module_pair
*
pair
,
const
struct
symt
*
sym
)
const
struct
symt
_function
*
func
,
const
struct
symt
*
sym
)
{
symt_fill_sym_info
(
pair
,
sym
,
se
->
sym_info
);
symt_fill_sym_info
(
pair
,
func
,
sym
,
se
->
sym_info
);
if
(
se
->
index
&&
se
->
sym_info
->
info
!=
se
->
index
)
return
FALSE
;
if
(
se
->
tag
&&
se
->
sym_info
->
Tag
!=
se
->
tag
)
return
FALSE
;
if
(
se
->
addr
&&
!
(
se
->
addr
>=
se
->
sym_info
->
Address
&&
se
->
addr
<
se
->
sym_info
->
Address
+
se
->
sym_info
->
Size
))
return
FALSE
;
...
...
@@ -589,7 +590,7 @@ static BOOL symt_enum_module(struct module_pair* pair, regex_t* regex,
{
se
->
sym_info
->
SizeOfStruct
=
sizeof
(
SYMBOL_INFO
);
se
->
sym_info
->
MaxNameLen
=
sizeof
(
se
->
buffer
)
-
sizeof
(
SYMBOL_INFO
);
if
(
send_symbol
(
se
,
pair
,
&
sym
->
symt
))
return
TRUE
;
if
(
send_symbol
(
se
,
pair
,
NULL
,
&
sym
->
symt
))
return
TRUE
;
}
}
return
FALSE
;
...
...
@@ -697,7 +698,7 @@ int symt_find_nearest(struct module* module, DWORD addr)
static
BOOL
symt_enum_locals_helper
(
struct
module_pair
*
pair
,
regex_t
*
preg
,
const
struct
sym_enum
*
se
,
struct
vector
*
v
)
struct
symt_function
*
func
,
struct
vector
*
v
)
{
struct
symt
**
plsym
=
NULL
;
struct
symt
*
lsym
=
NULL
;
...
...
@@ -713,14 +714,14 @@ static BOOL symt_enum_locals_helper(struct module_pair* pair,
struct
symt_block
*
block
=
(
struct
symt_block
*
)
lsym
;
if
(
pc
<
block
->
address
||
block
->
address
+
block
->
size
<=
pc
)
continue
;
if
(
!
symt_enum_locals_helper
(
pair
,
preg
,
se
,
&
block
->
vchildren
))
if
(
!
symt_enum_locals_helper
(
pair
,
preg
,
se
,
func
,
&
block
->
vchildren
))
return
FALSE
;
}
break
;
case
SymTagData
:
if
(
regexec
(
preg
,
symt_get_name
(
lsym
),
0
,
NULL
,
0
)
==
0
)
{
if
(
send_symbol
(
se
,
pair
,
lsym
))
return
FALSE
;
if
(
send_symbol
(
se
,
pair
,
func
,
lsym
))
return
FALSE
;
}
break
;
case
SymTagLabel
:
...
...
@@ -759,13 +760,13 @@ static BOOL symt_enum_locals(struct process* pcs, const char* mask,
compile_regex
(
mask
?
mask
:
"*"
,
-
1
,
&
preg
,
dbghelp_options
&
SYMOPT_CASE_INSENSITIVE
);
ret
=
symt_enum_locals_helper
(
&
pair
,
&
preg
,
se
,
ret
=
symt_enum_locals_helper
(
&
pair
,
&
preg
,
se
,
(
struct
symt_function
*
)
sym
,
&
((
struct
symt_function
*
)
sym
)
->
vchildren
);
regfree
(
&
preg
);
return
ret
;
}
return
send_symbol
(
se
,
&
pair
,
&
sym
->
symt
);
return
send_symbol
(
se
,
&
pair
,
NULL
,
&
sym
->
symt
);
}
/******************************************************************
...
...
@@ -991,7 +992,7 @@ BOOL WINAPI SymFromAddr(HANDLE hProcess, DWORD64 Address,
sym
=
pair
.
effective
->
addr_sorttab
[
idx
];
symt_fill_sym_info
(
&
pair
,
&
sym
->
symt
,
Symbol
);
symt_fill_sym_info
(
&
pair
,
NULL
,
&
sym
->
symt
,
Symbol
);
*
Displacement
=
Address
-
Symbol
->
Address
;
return
TRUE
;
}
...
...
@@ -1096,7 +1097,7 @@ static BOOL find_name(struct process* pcs, struct module* module, const char* na
if
(
!
strcmp
(
sym
->
hash_elt
.
name
,
name
))
{
symt_fill_sym_info
(
&
pair
,
&
sym
->
symt
,
symbol
);
symt_fill_sym_info
(
&
pair
,
NULL
,
&
sym
->
symt
,
symbol
);
return
TRUE
;
}
}
...
...
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