[4/6] dbghelp: Don't define 32-bit source file functions in Win64.
Mike Ruprecht
cmaiku at gmail.com
Fri Mar 6 01:36:21 CST 2009
---
dlls/dbghelp/dbghelp.spec | 8 ++++----
dlls/dbghelp/symbol.c | 6 ++++++
include/dbghelp.h | 19 +++++++++++++++++++
3 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index 81b46d4..cfbcf90 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -83,16 +83,16 @@
@ stub SymGetFileLineOffsets64
@ stub SymGetHomeDirectory
@ stub SymGetHomeDirectoryW
-@ stdcall SymGetLineFromAddr(long long ptr ptr)
+@ stdcall -i386 SymGetLineFromAddr(long long ptr ptr)
@ stdcall SymGetLineFromAddr64(long double ptr ptr)
@ stdcall SymGetLineFromAddrW64(long double ptr ptr)
-@ stub SymGetLineFromName
+@ stub -i386 SymGetLineFromName
@ stub SymGetLineFromName64
@ stub SymGetLineFromNameW64
-@ stdcall SymGetLineNext(long ptr)
+@ stdcall -i386 SymGetLineNext(long ptr)
@ stdcall SymGetLineNext64(long ptr)
@ stub SymGetLineNextW64
-@ stdcall SymGetLinePrev(long ptr)
+@ stdcall -i386 SymGetLinePrev(long ptr)
@ stdcall SymGetLinePrev64(long ptr)
@ stub SymGetLinePrevW64
@ stdcall -i386 SymGetModuleBase(long long)
diff --git a/dlls/dbghelp/symbol.c b/dlls/dbghelp/symbol.c
index 3c64ba4..4d4a0b6 100644
--- a/dlls/dbghelp/symbol.c
+++ b/dlls/dbghelp/symbol.c
@@ -1442,6 +1442,7 @@ BOOL WINAPI SymGetSymPrev(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
}
#endif
+#if defined(_IMAGEHLP_SOURCE_) || !defined(_IMAGEHLP64)
/******************************************************************
* SymGetLineFromAddr (DBGHELP.@)
*
@@ -1468,6 +1469,7 @@ BOOL WINAPI SymGetLineFromAddr(HANDLE hProcess, DWORD dwAddr,
*pdwDisplacement = dwAddr - Line->Address;
return TRUE;
}
+#endif
/******************************************************************
* copy_line_64_from_32 (internal)
@@ -1549,6 +1551,7 @@ BOOL WINAPI SymGetLineFromAddrW64(HANDLE hProcess, DWORD64 dwAddr,
return TRUE;
}
+#if defined(_IMAGEHLP_SOURCE_) || !defined(_IMAGEHLP64)
/******************************************************************
* SymGetLinePrev (DBGHELP.@)
*
@@ -1598,6 +1601,7 @@ BOOL WINAPI SymGetLinePrev(HANDLE hProcess, PIMAGEHLP_LINE Line)
SetLastError(ERROR_NO_MORE_ITEMS); /* FIXME */
return FALSE;
}
+#endif
/******************************************************************
* SymGetLinePrev64 (DBGHELP.@)
@@ -1635,6 +1639,7 @@ BOOL symt_get_func_line_next(const struct module* module, PIMAGEHLP_LINE line)
return FALSE;
}
+#if defined(_IMAGEHLP_SOURCE_) || !defined(_IMAGEHLP64)
/******************************************************************
* SymGetLineNext (DBGHELP.@)
*
@@ -1655,6 +1660,7 @@ BOOL WINAPI SymGetLineNext(HANDLE hProcess, PIMAGEHLP_LINE Line)
SetLastError(ERROR_NO_MORE_ITEMS); /* FIXME */
return FALSE;
}
+#endif
/******************************************************************
* SymGetLineNext64 (DBGHELP.@)
diff --git a/include/dbghelp.h b/include/dbghelp.h
index da52990..821a979 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1147,19 +1147,38 @@ typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(PSOURCEFILEW, PVOID);
BOOL WINAPI SymEnumSourceFiles(HANDLE, ULONG64, PCSTR, PSYM_ENUMSOURCEFILES_CALLBACK,
PVOID);
BOOL WINAPI SymEnumSourceFilesW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMSOURCEFILES_CALLBACKW, PVOID);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLineFromAddr SymGetLineFromAddr64
+#define SymGetLineFromAddrW SymGetLineFromAddrW64
+#else
BOOL WINAPI SymGetLineFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE);
BOOL WINAPI SymGetLineFromAddrW(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW);
+#endif
BOOL WINAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64);
BOOL WINAPI SymGetLineFromAddrW64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLinePrev SymGetLinePrev64
+#define SymGetLinePrevW SymGetLinePrevW64
+#else
BOOL WINAPI SymGetLinePrev(HANDLE, PIMAGEHLP_LINE);
BOOL WINAPI SymGetLinePrevW(HANDLE, PIMAGEHLP_LINEW);
+#endif
BOOL WINAPI SymGetLinePrev64(HANDLE, PIMAGEHLP_LINE64);
BOOL WINAPI SymGetLinePrevW64(HANDLE, PIMAGEHLP_LINEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLineNext SymGetLineNext64
+#define SymGetLineNextW SymGetLineNextW64
+#else
BOOL WINAPI SymGetLineNext(HANDLE, PIMAGEHLP_LINE);
BOOL WINAPI SymGetLineNextW(HANDLE, PIMAGEHLP_LINEW);
+#endif
BOOL WINAPI SymGetLineNext64(HANDLE, PIMAGEHLP_LINE64);
BOOL WINAPI SymGetLineNextW64(HANDLE, PIMAGEHLP_LINEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLineFromName SymGetLineFromName64
+#else
BOOL WINAPI SymGetLineFromName(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE);
+#endif
BOOL WINAPI SymGetLineFromName64(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64);
BOOL WINAPI SymGetLineFromNameW64(HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64);
ULONG WINAPI SymGetFileLineOffsets64(HANDLE, PCSTR, PCSTR, PDWORD64, ULONG);
--
1.6.0.4
More information about the wine-patches
mailing list