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
1185c512
Commit
1185c512
authored
Apr 30, 2008
by
Eric Pouech
Committed by
Alexandre Julliard
May 01, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedump: Print more meaningful information about module list.
parent
69c29866
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
20 deletions
+25
-20
pdb.c
tools/winedump/pdb.c
+25
-20
No files found.
tools/winedump/pdb.c
View file @
1185c512
...
...
@@ -210,8 +210,10 @@ static void pdb_dump_symbols(struct pdb_reader* reader)
if
(
symbols
->
srcmodule_size
)
{
const
PDB_SYMBOL_SOURCE
*
src
;
int
i
;
int
i
,
j
,
cfile
;
const
WORD
*
indx
;
const
DWORD
*
offset
;
const
char
*
start_cstr
;
const
char
*
cstr
;
printf
(
"
\t
----------src module------------
\n
"
);
...
...
@@ -219,35 +221,38 @@ static void pdb_dump_symbols(struct pdb_reader* reader)
symbols
->
module_size
+
symbols
->
offset_size
+
symbols
->
hash_size
);
printf
(
"
\t
Source Modules
\n
"
"
\t\t
nModules: %u
\n
"
"
\t\t
nSrcFiles: %u
\n
"
"
\t\t
table:
\n
"
,
"
\t\t
nSrcFiles: %u
\n
"
,
src
->
nModules
,
src
->
nSrcFiles
);
/* usage of table seems to be as follows:
* two arrays of WORD (src->nModules as size)
* - first array contains index into files for "module" compilation (module = compilation unit ??)
* - second array contains increment in index (if needed)
* - usage of this later is not very clear. it could be that if second array entry is null, then no file
* name is to be used ?
* an array of DWORD (src->nSrcFiles as size)
* - first array contains index into files for "module" compilation
* (module = compilation unit ??)
* - second array contains the number of source files in module
* an array of DWORD (src->nSrcFiles as size)
* - contains offset (in following string table) of the source file name
* a string table
* - each string is a pascal string (ie. with its length as first BYTE) or
* 0-terminated string (depending on version)
*
a string table
*
- each string is a pascal string (ie. with its length as first BYTE) or
*
0-terminated string (depending on version)
*/
indx
=
&
src
->
table
[
src
->
nModules
];
offset
=
(
const
DWORD
*
)
&
src
->
table
[
2
*
src
->
nModules
];
cstr
=
(
const
char
*
)
&
src
->
table
[
2
*
(
src
->
nModules
+
src
->
nSrcFiles
)];
start_cstr
=
cstr
;
for
(
i
=
0
;
i
<
src
->
nModules
;
i
++
)
for
(
i
=
cfile
=
0
;
i
<
src
->
nModules
;
i
++
)
{
/* FIXME: in some cases, it's a p_string but WHEN ? */
if
(
cstr
+
offset
[
src
->
table
[
i
]]
<
(
const
char
*
)
src
+
symbols
->
srcmodule_size
)
printf
(
"
\t\t\t
module[%2d]: src=%s (%04x)
\n
"
,
i
,
cstr
+
offset
[
src
->
table
[
i
]],
src
->
table
[
src
->
nModules
+
i
]);
else
printf
(
"
\t\t\t
module[%2d]: src=<<out of bounds>> (%04x)
\n
"
,
i
,
src
->
table
[
src
->
nModules
+
i
]);
printf
(
"
\t\t
Module[%2d]:
\n
"
,
i
);
for
(
j
=
0
;
j
<
indx
[
i
];
j
++
,
cfile
++
)
{
/* FIXME: in some cases, it's a p_string but WHEN ? */
if
(
src
->
table
[
cfile
]
<
src
->
nSrcFiles
&&
cstr
+
offset
[
src
->
table
[
cfile
]]
>=
(
const
char
*
)
start_cstr
/* wrap around */
&&
cstr
+
offset
[
src
->
table
[
cfile
]]
<
(
const
char
*
)
src
+
symbols
->
srcmodule_size
)
printf
(
"
\t\t\t
Source file: %s
\n
"
,
cstr
+
offset
[
src
->
table
[
cfile
]]);
else
printf
(
"
\t\t\t
Source file: <<out of bounds>>
\n
"
);
}
}
}
if
(
symbols
->
pdbimport_size
)
...
...
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