From 872c61ff9779257b71e2f9916d1ee9617229bdb7 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Tue, 24 Aug 2021 11:12:08 +0200 Subject: [PATCH] winedump: Add support for dumping trampoline codeview records. Signed-off-by: Eric Pouech Signed-off-by: Alexandre Julliard --- include/wine/mscvpdb.h | 12 ++++++++++++ tools/winedump/msc.c | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h index 3c3ef487b63..42455cbd0fe 100644 --- a/include/wine/mscvpdb.h +++ b/include/wine/mscvpdb.h @@ -1497,6 +1497,18 @@ union codeview_symbol char name[1]; } block_v3; + struct + { + unsigned short int len; + unsigned short int id; + unsigned short trampType; /* 0: incremental, 1: branchisland */ + unsigned short cbThunk; + unsigned int offThunk; + unsigned int offTarget; + unsigned short sectThunk; + unsigned short sectTarget; + } trampoline_v3; + struct { unsigned short int len; diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c index 0fa96205e20..f5d2d15774d 100644 --- a/tools/winedump/msc.c +++ b/tools/winedump/msc.c @@ -1566,6 +1566,16 @@ BOOL codeview_dump_symbols(const void* root, unsigned long size) sym->objname_v1.signature, p_string(&sym->objname_v1.p_name)); break; + case S_TRAMPOLINE: + printf("Trampoline V3 kind:%u %04x:%08x#%x -> %04x:%08x\n", + sym->trampoline_v3.trampType, + sym->trampoline_v3.sectThunk, + sym->trampoline_v3.offThunk, + sym->trampoline_v3.cbThunk, + sym->trampoline_v3.sectTarget, + sym->trampoline_v3.offTarget); + break; + case S_LABEL32_ST: printf("Label V1 '%s' in '%s' (%04x:%08x)\n", p_string(&sym->label_v1.p_name),