[2/5] dbghelp: Don't define 32-bit module handling functions in Win64.
Mike Ruprecht
cmaiku at gmail.com
Fri Mar 6 17:04:10 CST 2009
---
dlls/dbghelp/dbghelp.spec | 14 +++++++-------
dlls/dbghelp/module.c | 12 ++++++++++++
include/dbghelp.h | 27 +++++++++++++++++++++++++++
3 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index d7c7faa..6728d79 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -2,7 +2,7 @@
@ stub DbgHelpCreateUserDumpW
@ stdcall EnumDirTree(long str str ptr ptr ptr)
@ stdcall EnumDirTreeW(long wstr wstr ptr ptr ptr)
-@ stdcall EnumerateLoadedModules(long ptr ptr)
+@ stdcall -i386 EnumerateLoadedModules(long ptr ptr)
@ stdcall EnumerateLoadedModules64(long ptr ptr)
@ stub EnumerateLoadedModulesEx
@ stub EnumerateLoadedModulesExW
@@ -57,7 +57,7 @@
@ stub SymEnumTypesByName
@ stub SymEnumTypesByNameW
@ stdcall SymEnumTypesW(ptr double ptr ptr)
-@ stdcall SymEnumerateModules(long ptr ptr)
+@ stdcall -i386 SymEnumerateModules(long ptr ptr)
@ stdcall SymEnumerateModules64(long ptr ptr)
@ stdcall SymEnumerateModulesW64(long ptr ptr)
@ stdcall SymEnumerateSymbols(long long ptr ptr)
@@ -95,11 +95,11 @@
@ stdcall SymGetLinePrev(long ptr)
@ stdcall SymGetLinePrev64(long ptr)
@ stub SymGetLinePrevW64
-@ stdcall SymGetModuleBase(long long)
+@ stdcall -i386 SymGetModuleBase(long long)
@ stdcall SymGetModuleBase64(long double)
-@ stdcall SymGetModuleInfo(long long ptr)
+@ stdcall -i386 SymGetModuleInfo(long long ptr)
@ stdcall SymGetModuleInfo64(long double ptr)
-@ stdcall SymGetModuleInfoW(long long ptr)
+@ stdcall -i386 SymGetModuleInfoW(long long ptr)
@ stdcall SymGetModuleInfoW64(long double ptr)
@ stub SymGetOmapBlockBase
@ stdcall SymGetOptions()
@@ -131,7 +131,7 @@
@ stub SymGetTypeInfoEx
@ stdcall SymInitialize(long str long)
@ stdcall SymInitializeW(long wstr long)
-@ stdcall SymLoadModule(long long str str long long)
+@ stdcall -i386 SymLoadModule(long long str str long long)
@ stdcall SymLoadModule64(long long str str double long)
@ stdcall SymLoadModuleEx(long long str str double long ptr long)
@ stdcall SymLoadModuleExW(long long wstr wstr double long ptr long)
@@ -181,7 +181,7 @@
@ stub SymSetSymWithAddr64
@ stdcall SymUnDName(ptr str long)
@ stub SymUnDName64
-@ stdcall SymUnloadModule(long long)
+@ stdcall -i386 SymUnloadModule(long long)
@ stdcall SymUnloadModule64(long double)
@ stdcall UnDecorateSymbolName(str str long long)
@ stub UnDecorateSymbolNameW
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index fcdea2e..0a63742 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -438,6 +438,7 @@ enum module_type module_get_type_by_name(const WCHAR* name)
return DMT_PE;
}
+#ifndef _WIN64
/***********************************************************************
* SymLoadModule (DBGHELP.@)
*/
@@ -447,6 +448,7 @@ DWORD WINAPI SymLoadModule(HANDLE hProcess, HANDLE hFile, PCSTR ImageName,
return SymLoadModuleEx(hProcess, hFile, ImageName, ModuleName, BaseOfDll,
SizeOfDll, NULL, 0);
}
+#endif
/***********************************************************************
* SymLoadModuleEx (DBGHELP.@)
@@ -605,6 +607,7 @@ BOOL module_remove(struct process* pcs, struct module* module)
return FALSE;
}
+#ifndef _WIN64
/******************************************************************
* SymUnloadModule (DBGHELP.@)
*
@@ -620,6 +623,7 @@ BOOL WINAPI SymUnloadModule(HANDLE hProcess, DWORD BaseOfDll)
if (!module) return FALSE;
return module_remove(pcs, module);
}
+#endif
/******************************************************************
* SymUnloadModule64 (DBGHELP.@)
@@ -638,6 +642,7 @@ BOOL WINAPI SymUnloadModule64(HANDLE hProcess, DWORD64 BaseOfDll)
return module_remove(pcs, module);
}
+#ifndef _WIN64
/******************************************************************
* SymEnumerateModules (DBGHELP.@)
*
@@ -668,6 +673,7 @@ BOOL WINAPI SymEnumerateModules(HANDLE hProcess,
return SymEnumerateModulesW64(hProcess, enum_modW64_32, &x);
}
+#endif
/******************************************************************
* SymEnumerateModules64 (DBGHELP.@)
@@ -756,6 +762,7 @@ BOOL WINAPI EnumerateLoadedModules64(HANDLE hProcess,
return EnumerateLoadedModulesW64(hProcess, enum_load_modW64_64, &x);
}
+#ifndef _WIN64
/******************************************************************
* EnumerateLoadedModules (DBGHELP.@)
*
@@ -786,6 +793,7 @@ BOOL WINAPI EnumerateLoadedModules(HANDLE hProcess,
return EnumerateLoadedModulesW64(hProcess, enum_load_modW64_32, &x);
}
+#endif
/******************************************************************
* EnumerateLoadedModulesW64 (DBGHELP.@)
@@ -825,6 +833,7 @@ BOOL WINAPI EnumerateLoadedModulesW64(HANDLE hProcess,
return sz != 0 && i == sz;
}
+#ifndef _WIN64
/******************************************************************
* SymGetModuleInfo (DBGHELP.@)
*
@@ -888,6 +897,7 @@ BOOL WINAPI SymGetModuleInfoW(HANDLE hProcess, DWORD dwAddr,
return TRUE;
}
+#endif
/******************************************************************
* SymGetModuleInfo64 (DBGHELP.@)
@@ -978,6 +988,7 @@ BOOL WINAPI SymGetModuleInfoW64(HANDLE hProcess, DWORD64 dwAddr,
return TRUE;
}
+#ifndef _WIN64
/***********************************************************************
* SymGetModuleBase (DBGHELP.@)
*/
@@ -991,6 +1002,7 @@ DWORD WINAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr)
if (!module) return 0;
return module->module.BaseOfImage;
}
+#endif
/***********************************************************************
* SymGetModuleBase64 (DBGHELP.@)
diff --git a/include/dbghelp.h b/include/dbghelp.h
index 6f9e880..ea6a4bc 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -832,31 +832,58 @@ BOOL WINAPI MiniDumpReadDumpStream(PVOID, ULONG, PMINIDUMP_DIRECTORY*, PVOID*,
#define SLMFLAG_VIRTUAL 0x1
#define SLMFLAG_NO_SYMBOLS 0x4
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define PENUMLOADED_MODULES_CALLBACK PENUMLOADED_MODULES_CALLBACK64
+#define EnumerateLoadedModules EnumerateLoadedModules64
+#else
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(PCSTR, ULONG, ULONG, PVOID);
BOOL WINAPI EnumerateLoadedModules(HANDLE, PENUMLOADED_MODULES_CALLBACK, PVOID);
+#endif
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID);
BOOL WINAPI EnumerateLoadedModules64(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID);
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(PCWSTR, DWORD64, ULONG, PVOID);
BOOL WINAPI EnumerateLoadedModulesW64(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define PSYM_ENUMMODULES_CALLBACK PSYM_ENUMMODULES_CALLBACK64
+#define SymEnumerateModules SymEnumerateModules64
+#else
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(PCSTR, ULONG, PVOID);
BOOL WINAPI SymEnumerateModules(HANDLE, PSYM_ENUMMODULES_CALLBACK, PVOID);
+#endif
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(PCSTR, DWORD64, PVOID);
BOOL WINAPI SymEnumerateModules64(HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID);
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(PCWSTR, DWORD64, PVOID);
BOOL WINAPI SymEnumerateModulesW64(HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetModuleInfo SymGetModuleInfo64
+#define SymGetModuleInfoW SymGetModuleInfoW64
+#else
BOOL WINAPI SymGetModuleInfo(HANDLE, DWORD, PIMAGEHLP_MODULE);
BOOL WINAPI SymGetModuleInfoW(HANDLE, DWORD, PIMAGEHLP_MODULEW);
+#endif
BOOL WINAPI SymGetModuleInfo64(HANDLE, DWORD64, PIMAGEHLP_MODULE64);
BOOL WINAPI SymGetModuleInfoW64(HANDLE, DWORD64, PIMAGEHLP_MODULEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetModuleBase SymGetModuleBase64
+#else
DWORD WINAPI SymGetModuleBase(HANDLE, DWORD);
+#endif
DWORD64 WINAPI SymGetModuleBase64(HANDLE, DWORD64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymLoadModule SymLoadModule64
+#else
DWORD WINAPI SymLoadModule(HANDLE, HANDLE, PCSTR, PCSTR, DWORD, DWORD);
+#endif
DWORD64 WINAPI SymLoadModule64(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD);
DWORD64 WINAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD,
PMODLOAD_DATA, DWORD);
DWORD64 WINAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD,
PMODLOAD_DATA, DWORD);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymUnloadModule SymUnloadModule64
+#else
BOOL WINAPI SymUnloadModule(HANDLE, DWORD);
+#endif
BOOL WINAPI SymUnloadModule64(HANDLE, DWORD64);
/*************************
--
1.6.0.4
More information about the wine-patches
mailing list