From: Eric Pouech epouech@codeweavers.com
A step towards a full fix of:
Wine-Bug-Id: https://bugs.winehq.org/show_bug.cgi?id=34990
Signed-off-by: Eric Pouech epouech@codeweavers.com --- dlls/dbghelp/msc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c index d65b7707921..2078881d8f2 100644 --- a/dlls/dbghelp/msc.c +++ b/dlls/dbghelp/msc.c @@ -2848,6 +2848,19 @@ static BOOL codeview_snarf(const struct msc_debug_info* msc_dbg, FIXME("Unexpected S_FRAMEPROC %d (%p %p) %x\n", top_frame_size, top_func, curr_func, i); break;
+ case S_GMANPROC: + case S_LMANPROC: + /* skip whole record and sub-records */ + i = sym->managed_proc_v3.pend; + sym = (const union codeview_symbol*)(root + i); + if (i + sizeof(sym->generic) > size || sym->generic.id != S_END) + { + FIXME("Wrong relocation after managed proc, aborting\n"); + return FALSE; + } + length = 2 + sym->generic.len; + break; + /* the symbols we can safely ignore for now */ case S_SKIP: case S_TRAMPOLINE: @@ -2857,6 +2870,9 @@ static BOOL codeview_snarf(const struct msc_debug_info* msc_dbg, case S_EXPORT: case S_CALLSITEINFO: case S_ARMSWITCHTABLE: + case S_TOKENREF: + case S_OEM: + case S_MANSLOT: /* even if S_LOCAL groks all the S_DEFRANGE* records following itself, * those kinds of records can also be present after a S_FILESTATIC record * so silence them until (at least) S_FILESTATIC is supported