From 076dcc845f313a4177459df04800f995c06e92e2 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Mon, 29 Sep 2008 21:30:55 +0200 Subject: [PATCH] dbghelp,winedump: Added support for symbol 0x1012. --- dlls/dbghelp/msc.c | 1 + include/wine/mscvpdb.h | 18 +++++++++++++++--- tools/winedump/msc.c | 13 +++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c index 6ae4fdf5365..8c557b1cef7 100644 --- a/dlls/dbghelp/msc.c +++ b/dlls/dbghelp/msc.c @@ -1727,6 +1727,7 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root /* the symbols we can safely ignore for now */ case 0x112c: + case S_FUNCINFO_V2: case S_SECUCOOKIE_V3: TRACE("Unsupported symbol id %x\n", sym->generic.id); break; diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h index 602453eebfd..b7d870f96f4 100644 --- a/include/wine/mscvpdb.h +++ b/include/wine/mscvpdb.h @@ -1530,6 +1530,20 @@ union codeview_symbol unsigned int offset; unsigned int unknown; } security_cookie_v3; + + struct + { + short int len; + short int id; + unsigned int unknown1; /* maybe size (of what ?) */ + unsigned int unknown2; + unsigned int unknown3; + unsigned int unknown4; /* maybe size (of what ?) */ + unsigned int unknown5; /* maybe address (of what ?) */ + unsigned short unknown6; + unsigned short flags; + unsigned int unknown7; + } func_info_v2; }; #define S_COMPILAND_V1 0x0001 @@ -1583,9 +1597,7 @@ union codeview_symbol #define S_REGREL_V2 0x100d #define S_LTHREAD_V2 0x100e #define S_GTHREAD_V2 0x100f -#if 0 -#define S_XXXXXXXXX_32 0x1012 /* seems linked to a function, content unknown */ -#endif +#define S_FUNCINFO_V2 0x1012 #define S_COMPILAND_V2 0x1013 #define S_COMPILAND_V3 0x1101 diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c index 44f907e2762..522507d7d29 100644 --- a/tools/winedump/msc.c +++ b/tools/winedump/msc.c @@ -1033,6 +1033,19 @@ int codeview_dump_symbols(const void* root, unsigned long size) nest_block++; break; + /* Additional function information */ + case S_FUNCINFO_V2: + printf("\tFunction info V2 unk1:%x unk2:%x unk3:%x unk4:%x unk5:%x unk6:%x flags:%04x unk7:%x\n", + sym->func_info_v2.unknown1, + sym->func_info_v2.unknown2, + sym->func_info_v2.unknown3, + sym->func_info_v2.unknown4, + sym->func_info_v2.unknown5, + sym->func_info_v2.unknown6, + sym->func_info_v2.flags, + sym->func_info_v2.unknown7); + break; + case S_SECUCOOKIE_V3: printf("\tSecurity Cookie V3 @%d unk:%x\n", sym->security_cookie_v3.offset, sym->security_cookie_v3.unknown);