Eric Pouech : winedump:
Added for dumping sstAlignSym and sstGlobalTypes COFF sections.
Alexandre Julliard
julliard at wine.codeweavers.com
Sat Jan 6 05:12:52 CST 2007
Module: wine
Branch: master
Commit: fbb9d5f7d9f0768919701c2c63fac3ec166bf6d4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fbb9d5f7d9f0768919701c2c63fac3ec166bf6d4
Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date: Fri Jan 5 21:43:06 2007 +0100
winedump: Added for dumping sstAlignSym and sstGlobalTypes COFF sections.
---
tools/winedump/debug.c | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/tools/winedump/debug.c b/tools/winedump/debug.c
index 3202c25..3ca944b 100644
--- a/tools/winedump/debug.c
+++ b/tools/winedump/debug.c
@@ -173,7 +173,25 @@ static int dump_cv_sst_libraries(const O
static int dump_cv_sst_global_types(const OMFDirEntry* omfde)
{
- /*** NOT YET IMPLEMENTED ***/
+ long fileoffset;
+ const OMFGlobalTypes*types;
+ const BYTE* data;
+ unsigned sz;
+
+ fileoffset = Offset(cv_base) + omfde->lfo;
+ printf (" GlobalTypes section starts at file offset 0x%lx\n", fileoffset);
+
+ printf ("\n ----- Begin Global Types Table -----\n");
+
+ types = PRD(fileoffset, sizeof(OMFGlobalTypes));
+ if (!types) {printf("Can't get OMF-GlobalTypes, aborting\n");return FALSE;}
+
+ sz = omfde->cb - sizeof(OMFGlobalTypes) - sizeof(DWORD) * types->cTypes;
+ data = PRD(fileoffset + sizeof(OMFGlobalTypes) + sizeof(DWORD) * types->cTypes, sz);
+ if (!data) {printf("Can't OMF-SymHash details, aborting\n"); return FALSE;}
+
+ codeview_dump_types(data, sz);
+
return TRUE;
}
@@ -306,7 +324,11 @@ static int dump_cv_sst_src_module(const
static int dump_cv_sst_align_sym(const OMFDirEntry* omfde)
{
- /*** NOT YET IMPLEMENTED ***/
+ const char* rawdata = PRD(Offset(cv_base) + omfde->lfo, omfde->cb);
+
+ if (!rawdata) {printf("Can't get srcAlignSym subsection details, aborting\n");return FALSE;}
+ if (omfde->cb < sizeof(DWORD)) return TRUE;
+ codeview_dump_symbols(rawdata + sizeof(DWORD), omfde->cb - sizeof(DWORD));
return TRUE;
}
More information about the wine-cvs
mailing list