https://git.reactos.org/?p=reactos.git;a=commitdiff;h=006ce9607c5995d06ab2e4...
commit 006ce9607c5995d06ab2e4f9398a509a1d723a19 Author: winesync ros-dev@reactos.org AuthorDate: Fri Sep 11 16:06:06 2020 +0200 Commit: Jérôme Gardou jerome.gardou@reactos.org CommitDate: Wed Sep 16 10:35:41 2020 +0200
[WINESYNC] dbghelp: SymSet/GetExtendedOption support a WINE only option.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
wine commit id fa5e5df71db231f6fca9c7a40792c17e9bbe5027 by Alistair Leslie-Hughes leslie_alistair@hotmail.com --- dll/win32/dbghelp/compat.h | 4 +++- dll/win32/dbghelp/dbghelp.c | 25 ++++++++++++++++++++++--- dll/win32/dbghelp/dbghelp_private.h | 2 ++ sdk/include/psdk/dbghelp.h | 6 +++++- sdk/tools/winesync/dbghelp.cfg | 2 +- 5 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/dll/win32/dbghelp/compat.h b/dll/win32/dbghelp/compat.h index 3a6137eca9a..e281347d0ee 100644 --- a/dll/win32/dbghelp/compat.h +++ b/dll/win32/dbghelp/compat.h @@ -1299,7 +1299,9 @@ typedef struct API_VERSION typedef enum { SYMOPT_EX_DISABLEACCESSTIMEUPDATE, - SYMOPT_EX_MAX + SYMOPT_EX_MAX, +/* __WINESRC__ */ + SYMOPT_EX_WINE_NATIVE_MODULES = 1000 } IMAGEHLP_EXTENDED_OPTIONS;
// cvconst.h diff --git a/dll/win32/dbghelp/dbghelp.c b/dll/win32/dbghelp/dbghelp.c index 3c3350d8213..b4f435fd584 100644 --- a/dll/win32/dbghelp/dbghelp.c +++ b/dll/win32/dbghelp/dbghelp.c @@ -70,6 +70,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp); */
unsigned dbghelp_options = SYMOPT_UNDNAME; +BOOL dbghelp_opt_native = FALSE;
static struct process* process_first /* = NULL */;
@@ -473,8 +474,19 @@ DWORD WINAPI SymGetOptions(void) */ BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value) { - FIXME("%d, %d\n", option, value); - return FALSE; + BOOL old = FALSE; + + switch(option) + { + case SYMOPT_EX_WINE_NATIVE_MODULES: + old = dbghelp_opt_native; + dbghelp_opt_native = value; + break; + default: + FIXME("Unsupported option %d with value %d\n", option, value); + } + + return old; }
/****************************************************************** @@ -483,7 +495,14 @@ BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value) */ BOOL WINAPI SymGetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option) { - FIXME("%d\n", option); + switch(option) + { + case SYMOPT_EX_WINE_NATIVE_MODULES: + return dbghelp_opt_native; + default: + FIXME("Unsupported option %d\n", option); + } + return FALSE; }
diff --git a/dll/win32/dbghelp/dbghelp_private.h b/dll/win32/dbghelp/dbghelp_private.h index 565399ebcc1..e5b3bfce8ed 100644 --- a/dll/win32/dbghelp/dbghelp_private.h +++ b/dll/win32/dbghelp/dbghelp_private.h @@ -127,6 +127,8 @@ void* hash_table_iter_up(struct hash_table_iter* hti) DECLSPEC_HIDDEN;
extern unsigned dbghelp_options DECLSPEC_HIDDEN; +extern BOOL dbghelp_opt_native DECLSPEC_HIDDEN; + /* some more Wine extensions */ #define SYMOPT_WINE_WITH_NATIVE_MODULES 0x40000000
diff --git a/sdk/include/psdk/dbghelp.h b/sdk/include/psdk/dbghelp.h index 549155229c5..40eca402a4a 100644 --- a/sdk/include/psdk/dbghelp.h +++ b/sdk/include/psdk/dbghelp.h @@ -2316,7 +2316,11 @@ typedef struct _IMAGE_DEBUG_INFORMATION typedef enum { SYMOPT_EX_DISABLEACCESSTIMEUPDATE, - SYMOPT_EX_MAX + SYMOPT_EX_MAX, + +#ifdef __WINESRC__ + SYMOPT_EX_WINE_NATIVE_MODULES = 1000, +#endif } IMAGEHLP_EXTENDED_OPTIONS;
PIMAGE_DEBUG_INFORMATION diff --git a/sdk/tools/winesync/dbghelp.cfg b/sdk/tools/winesync/dbghelp.cfg index 58583d4c5fe..b503937e428 100644 --- a/sdk/tools/winesync/dbghelp.cfg +++ b/sdk/tools/winesync/dbghelp.cfg @@ -4,4 +4,4 @@ files: include/dbghelp.h: sdk/include/psdk/dbghelp.h include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h tags: - wine: 3fed8787251882c70eeadefb230cd2ff4b251ac2 + wine: fa5e5df71db231f6fca9c7a40792c17e9bbe5027