[5/5] dbghelp: Don't define 32-bit stack management functions in Win64.
Mike Ruprecht
cmaiku at gmail.com
Fri Mar 6 17:04:13 CST 2009
---
dlls/dbghelp/dbghelp.spec | 6 +++---
dlls/dbghelp/stack.c | 4 ++++
dlls/dbghelp/symbol.c | 4 +++-
include/dbghelp.h | 20 ++++++++++++++++++++
4 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index cfbcf90..693d8c6 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -30,7 +30,7 @@
@ stdcall MiniDumpWriteDump(ptr long ptr long long long long)
@ stdcall SearchTreeForFile(str str ptr)
@ stdcall SearchTreeForFileW(wstr wstr ptr)
-@ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr)
+@ stdcall -i386 StackWalk(long long long ptr ptr ptr ptr ptr ptr)
@ stdcall StackWalk64(long long long ptr ptr ptr ptr ptr ptr)
@ stub SymAddSourceStream
@ stub SymAddSourceStreamA
@@ -78,7 +78,7 @@
@ stub SymFromNameW
@ stub SymFromToken
@ stub SymFromTokenW
-@ stdcall SymFunctionTableAccess(long long)
+@ stdcall -i386 SymFunctionTableAccess(long long)
@ stdcall SymFunctionTableAccess64(long double)
@ stub SymGetFileLineOffsets64
@ stub SymGetHomeDirectory
@@ -148,7 +148,7 @@
@ stdcall -i386 SymRegisterCallback(long ptr ptr)
@ stdcall SymRegisterCallback64(long ptr double)
@ stdcall SymRegisterCallbackW64(long ptr double)
-@ stdcall SymRegisterFunctionEntryCallback(ptr ptr ptr)
+@ stdcall -i386 SymRegisterFunctionEntryCallback(ptr ptr ptr)
@ stdcall SymRegisterFunctionEntryCallback64(ptr ptr double)
@ stdcall SymSearch(long double long long str double ptr ptr long)
@ stdcall SymSearchW(long double long long wstr double ptr ptr long)
diff --git a/dlls/dbghelp/stack.c b/dlls/dbghelp/stack.c
index 3c66fcb..f438e13 100644
--- a/dlls/dbghelp/stack.c
+++ b/dlls/dbghelp/stack.c
@@ -461,6 +461,7 @@ done_err:
return FALSE;
}
+#ifndef _WIN64
/***********************************************************************
* StackWalk (DBGHELP.@)
*/
@@ -495,6 +496,7 @@ BOOL WINAPI StackWalk(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
return stack_walk(&swcb, frame);
}
+#endif
/***********************************************************************
@@ -575,6 +577,7 @@ BOOL WINAPI StackWalk64(DWORD MachineType, HANDLE hProcess, HANDLE hThread,
return ret;
}
+#ifndef _WIN64
/******************************************************************
* SymRegisterFunctionEntryCallback (DBGHELP.@)
*
@@ -587,6 +590,7 @@ BOOL WINAPI SymRegisterFunctionEntryCallback(HANDLE hProc,
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
+#endif
/******************************************************************
* SymRegisterFunctionEntryCallback64 (DBGHELP.@)
diff --git a/dlls/dbghelp/symbol.c b/dlls/dbghelp/symbol.c
index 8c0db9d..5de7cdc 100644
--- a/dlls/dbghelp/symbol.c
+++ b/dlls/dbghelp/symbol.c
@@ -1676,7 +1676,8 @@ BOOL WINAPI SymGetLineNext64(HANDLE hProcess, PIMAGEHLP_LINE64 Line)
copy_line_64_from_32(Line, &line32);
return TRUE;
}
-
+
+#ifndef _WIN64
/***********************************************************************
* SymFunctionTableAccess (DBGHELP.@)
*/
@@ -1685,6 +1686,7 @@ PVOID WINAPI SymFunctionTableAccess(HANDLE hProcess, DWORD AddrBase)
WARN("(%p, 0x%08x): stub\n", hProcess, AddrBase);
return NULL;
}
+#endif
/***********************************************************************
* SymFunctionTableAccess64 (DBGHELP.@)
diff --git a/include/dbghelp.h b/include/dbghelp.h
index 7181d9d..7d6ea81 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1358,6 +1358,13 @@ typedef struct _STACKFRAME64
KDHELP64 KdHelp;
} STACKFRAME64, *LPSTACKFRAME64;
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define PREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE64
+#define PFUNCTION_TABLE_ACCESS_ROUTINE PFUNCTION_TABLE_ACCESS_ROUTINE64
+#define PGET_MODULE_BASE_ROUTINE PGET_MODULE_BASE_ROUTINE64
+#define PTRANSLATE_ADDRESS_ROUTINE PTRANSLATE_ADDRESS_ROUTINE64
+#define StackWalk StackWalk64
+#else
typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)
(HANDLE, DWORD, PVOID, DWORD, PDWORD);
typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE, DWORD);
@@ -1368,6 +1375,7 @@ BOOL WINAPI StackWalk(DWORD, HANDLE, HANDLE, LPSTACKFRAME, PVOID,
PFUNCTION_TABLE_ACCESS_ROUTINE,
PGET_MODULE_BASE_ROUTINE,
PTRANSLATE_ADDRESS_ROUTINE);
+#endif
typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64)
(HANDLE, DWORD64, PVOID, DWORD, PDWORD);
@@ -1380,13 +1388,25 @@ BOOL WINAPI StackWalk64(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID,
PGET_MODULE_BASE_ROUTINE64,
PTRANSLATE_ADDRESS_ROUTINE64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymFunctionTableAccess SymFunctionTableAccess64
+#else
PVOID WINAPI SymFunctionTableAccess(HANDLE, DWORD);
+#endif
PVOID WINAPI SymFunctionTableAccess64(HANDLE, DWORD64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define PSYMBOL_FUNCENTRY_CALLBACK PSYMBOL_FUNCENTRY_CALLBACK64
+#else
typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(HANDLE, DWORD, PVOID);
+#endif
typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(HANDLE, ULONG64, ULONG64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymRegisterFunctionEntryCallback SymRegisterFunctionEntryCallback64
+#else
BOOL WINAPI SymRegisterFunctionEntryCallback(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID);
+#endif
BOOL WINAPI SymRegisterFunctionEntryCallback64(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64);
/*************************
--
1.6.0.4
More information about the wine-patches
mailing list