Jacek Caban : dbghelp: Use PE type for virtual modules.

Alexandre Julliard julliard at winehq.org
Wed Mar 25 17:07:29 CDT 2020


Module: wine
Branch: master
Commit: 635506921a28c65bfc9b339d59c63d96092d97d8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=635506921a28c65bfc9b339d59c63d96092d97d8

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Mar 25 17:41:38 2020 +0100

dbghelp: Use PE type for virtual modules.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dbghelp/module.c | 59 +--------------------------------------------------
 1 file changed, 1 insertion(+), 58 deletions(-)

diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index 536a230f4d..ce671220dd 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -37,9 +37,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
 const WCHAR        S_ElfW[]         = {'<','e','l','f','>','\0'};
 const WCHAR        S_WineLoaderW[]  = {'<','w','i','n','e','-','l','o','a','d','e','r','>','\0'};
 static const WCHAR S_DotSoW[]       = {'.','s','o','\0'};
-static const WCHAR S_DotDylibW[]    = {'.','d','y','l','i','b','\0'};
-static const WCHAR S_DotPdbW[]      = {'.','p','d','b','\0'};
-static const WCHAR S_DotDbgW[]      = {'.','d','b','g','\0'};
 const WCHAR        S_SlashW[]       = {'/','\0'};
 
 static const WCHAR S_AcmW[] = {'.','a','c','m','\0'};
@@ -467,59 +464,6 @@ static BOOL module_is_container_loaded(const struct process* pcs,
     return FALSE;
 }
 
-/******************************************************************
- *		module_get_type_by_name
- *
- * Guesses a filename type from its extension
- */
-enum module_type module_get_type_by_name(const WCHAR* name)
-{
-    int len = strlenW(name);
-
-    /* Skip all version extensions (.[digits]) regex: "(\.\d+)*$" */
-    do
-    {
-        int i = len;
-
-        while (i && name[i - 1] >= '0' && name[i - 1] <= '9') i--;
-
-        if (i && name[i - 1] == '.')
-            len = i - 1;
-        else
-            break;
-    } while (len);
-
-    /* check for terminating .so or .so.[digit] */
-    /* FIXME: Can't rely solely on extension; have to check magic or
-     *        stop using .so on Mac OS X.  For now, base on platform. */
-    if (len > 3 && !memcmp(name + len - 3, S_DotSoW, 3))
-#ifdef __APPLE__
-        return DMT_MACHO;
-#else
-        return DMT_ELF;
-#endif
-
-    if (len > 6 && !strncmpiW(name + len - 6, S_DotDylibW, 6))
-        return DMT_MACHO;
-
-    if (len > 4 && !strncmpiW(name + len - 4, S_DotPdbW, 4))
-        return DMT_PDB;
-
-    if (len > 4 && !strncmpiW(name + len - 4, S_DotDbgW, 4))
-        return DMT_DBG;
-
-    /* wine is also a native module (Mach-O on Mac OS X, ELF elsewhere) */
-    if (is_wine_loader(name))
-    {
-#ifdef __APPLE__
-        return DMT_MACHO;
-#else
-        return DMT_ELF;
-#endif
-    }
-    return DMT_PE;
-}
-
 static BOOL image_check_debug_link(const WCHAR* file, struct image_file_map* fmap, DWORD link_crc)
 {
     DWORD read_bytes;
@@ -846,8 +790,7 @@ DWORD64 WINAPI  SymLoadModuleExW(HANDLE hProcess, HANDLE hFile, PCWSTR wImageNam
     if (Flags & SLMFLAG_VIRTUAL)
     {
         if (!wImageName) return FALSE;
-        module = module_new(pcs, wImageName, module_get_type_by_name(wImageName),
-                            TRUE, BaseOfDll, SizeOfDll, 0, 0);
+        module = module_new(pcs, wImageName, DMT_PE, TRUE, BaseOfDll, SizeOfDll, 0, 0);
         if (!module) return FALSE;
         if (wModuleName) module_set_module(module, wModuleName);
         module->module.SymType = SymVirtual;




More information about the wine-cvs mailing list