[PATCH 2/3] dbghelp: SymSet/GetExtendedOption support a WINE only option

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Thu Jun 6 18:44:30 CDT 2019


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/dbghelp/dbghelp.c         | 25 ++++++++++++++++++++++---
 dlls/dbghelp/dbghelp_private.h |  2 ++
 include/dbghelp.h              |  6 +++++-
 3 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c
index 5a0d10d4bd..a5e6beb4a7 100644
--- a/dlls/dbghelp/dbghelp.c
+++ b/dlls/dbghelp/dbghelp.c
@@ -65,6 +65,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
  */
 
 unsigned   dbghelp_options = SYMOPT_UNDNAME;
+BOOL       dbghelp_opt_native = FALSE;
 
 static struct process* process_first /* = NULL */;
 
@@ -457,8 +458,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;
 }
 
 /******************************************************************
@@ -467,7 +479,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/dlls/dbghelp/dbghelp_private.h b/dlls/dbghelp/dbghelp_private.h
index 8083408c66..9e76d2dd4b 100644
--- a/dlls/dbghelp/dbghelp_private.h
+++ b/dlls/dbghelp/dbghelp_private.h
@@ -114,6 +114,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/include/dbghelp.h b/include/dbghelp.h
index a319385b4a..1b23489919 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1427,7 +1427,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 WINAPI MapDebugInformation(HANDLE, PCSTR, PCSTR, ULONG);
-- 
2.17.1



More information about the wine-devel mailing list