[PATCH 09/12] [WineDump]: added for dumping sstAlignSym and sstGlobalTypes COFF sections

Eric Pouech eric.pouech at wanadoo.fr
Fri Jan 5 14:43:06 CST 2007




A+
---

 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 352fbd8..9029e39 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-patches mailing list