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
1fa16200
Commit
1fa16200
authored
Aug 30, 2021
by
Eric Pouech
Committed by
Alexandre Julliard
Aug 30, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Introduce internal type (symt_module) to match SymTagExe.
Signed-off-by:
Eric Pouech
<
eric.pouech@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
3ed209e0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
34 additions
and
0 deletions
+34
-0
dbghelp_private.h
dlls/dbghelp/dbghelp_private.h
+9
-0
module.c
dlls/dbghelp/module.c
+3
-0
symbol.c
dlls/dbghelp/symbol.c
+13
-0
type.c
dlls/dbghelp/type.c
+9
-0
No files found.
dlls/dbghelp/dbghelp_private.h
View file @
1fa16200
...
...
@@ -161,6 +161,12 @@ struct symt_block
struct
vector
vchildren
;
/* sub-blocks & local variables */
};
struct
symt_module
/* in fact any of .exe, .dll... */
{
struct
symt
symt
;
/* module */
struct
module
*
module
;
};
struct
symt_compiland
{
struct
symt
symt
;
...
...
@@ -375,6 +381,7 @@ struct module
unsigned
sorttab_size
;
struct
symt_ht
**
addr_sorttab
;
struct
hash_table
ht_symbols
;
struct
symt_module
*
top
;
/* types */
struct
hash_table
ht_types
;
...
...
@@ -708,6 +715,8 @@ extern void copy_symbolW(SYMBOL_INFOW* siw, const SYMBOL_INFO* si) DECLS
extern
void
symbol_setname
(
SYMBOL_INFO
*
si
,
const
char
*
name
)
DECLSPEC_HIDDEN
;
extern
struct
symt_ht
*
symt_find_nearest
(
struct
module
*
module
,
DWORD_PTR
addr
)
DECLSPEC_HIDDEN
;
extern
struct
symt_module
*
symt_new_module
(
struct
module
*
module
)
DECLSPEC_HIDDEN
;
extern
struct
symt_compiland
*
symt_new_compiland
(
struct
module
*
module
,
ULONG_PTR
address
,
unsigned
src_idx
)
DECLSPEC_HIDDEN
;
...
...
dlls/dbghelp/module.c
View file @
1fa16200
...
...
@@ -233,6 +233,9 @@ struct module* module_new(struct process* pcs, const WCHAR* name,
module
->
sources
=
0
;
wine_rb_init
(
&
module
->
sources_offsets_tree
,
source_rb_compare
);
/* add top level symbol */
module
->
top
=
symt_new_module
(
module
);
return
module
;
}
...
...
dlls/dbghelp/symbol.c
View file @
1fa16200
...
...
@@ -183,6 +183,19 @@ static WCHAR* file_regex(const char* srcfile)
return
mask
;
}
struct
symt_module
*
symt_new_module
(
struct
module
*
module
)
{
struct
symt_module
*
sym
;
TRACE_
(
dbghelp_symt
)(
"Adding toplevel exe symbol %s
\n
"
,
debugstr_w
(
module
->
module
.
ModuleName
));
if
((
sym
=
pool_alloc
(
&
module
->
pool
,
sizeof
(
*
sym
))))
{
sym
->
symt
.
tag
=
SymTagExe
;
sym
->
module
=
module
;
}
return
sym
;
}
struct
symt_compiland
*
symt_new_compiland
(
struct
module
*
module
,
ULONG_PTR
address
,
unsigned
src_idx
)
{
...
...
dlls/dbghelp/type.c
View file @
1fa16200
...
...
@@ -752,6 +752,15 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
break
;
case
TI_GET_SYMNAME
:
if
(
type
->
tag
==
SymTagExe
)
{
DWORD
len
=
(
lstrlenW
(
module
->
modulename
)
+
1
)
*
sizeof
(
WCHAR
);
WCHAR
*
wname
=
HeapAlloc
(
GetProcessHeap
(),
0
,
len
);
if
(
!
wname
)
return
FALSE
;
memcpy
(
wname
,
module
->
modulename
,
len
);
X
(
WCHAR
*
)
=
wname
;
}
else
{
const
char
*
name
=
symt_get_name
(
type
);
if
(
!
name
)
return
FALSE
;
...
...
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