Moved quite a few functions to dbghelp (removed debug.c and symbol.c
files).
diff --git a/dlls/imagehlp/Makefile.in b/dlls/imagehlp/Makefile.in
index 21646ef..59f263f 100644
--- a/dlls/imagehlp/Makefile.in
+++ b/dlls/imagehlp/Makefile.in
@@ -4,16 +4,14 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = imagehlp.dll
-IMPORTS = kernel32 ntdll
+IMPORTS = dbghelp kernel32 ntdll
C_SRCS = \
access.c \
- debug.c \
imagehlp_main.c \
integrity.c \
internal.c \
- modify.c \
- symbol.c
+ modify.c
@MAKE_DLL_RULES@
diff --git a/dlls/imagehlp/access.c b/dlls/imagehlp/access.c
index 5c94deb..1974281 100644
--- a/dlls/imagehlp/access.c
+++ b/dlls/imagehlp/access.c
@@ -56,31 +56,6 @@
extern HANDLE IMAGEHLP_hHeap;
/***********************************************************************
- * EnumerateLoadedModules (IMAGEHLP.@)
- */
-BOOL WINAPI EnumerateLoadedModules(
- HANDLE hProcess,
- PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
- PVOID UserContext)
-{
- FIXME("(%p, %p, %p): stub\n",
- hProcess, EnumLoadedModulesCallback, UserContext
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * GetTimestampForLoadedLibrary (IMAGEHLP.@)
- */
-DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE Module)
-{
- FIXME("(%p): stub\n", Module);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-/***********************************************************************
* GetImageConfigInformation (IMAGEHLP.@)
*/
BOOL WINAPI GetImageConfigInformation(
diff --git a/dlls/imagehlp/debug.c b/dlls/imagehlp/debug.c
deleted file mode 100644
index d73c9f8..0000000
--- a/dlls/imagehlp/debug.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * IMAGEHLP library
- *
- * Copyright 1998 Patrik Stridvall
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <stdarg.h>
-
-#include "winerror.h"
-#include "windef.h"
-#include "winbase.h"
-#include "wine/debug.h"
-#include "imagehlp.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(imagehlp);
-
-/***********************************************************************
- * FindDebugInfoFile (IMAGEHLP.@)
- */
-HANDLE WINAPI FindDebugInfoFile(
- LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath)
-{
- FIXME("(%s, %s, %s): stub\n",
- debugstr_a(FileName), debugstr_a(SymbolPath),
- debugstr_a(DebugFilePath)
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return NULL;
-}
-
-/***********************************************************************
- * FindExecutableImage (IMAGEHLP.@)
- */
-HANDLE WINAPI FindExecutableImage(
- LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath)
-{
- FIXME("(%s, %s, %s): stub\n",
- debugstr_a(FileName), debugstr_a(SymbolPath),
- debugstr_a(ImageFilePath)
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return NULL;
-}
-
-/***********************************************************************
- * MapDebugInformation (IMAGEHLP.@)
- */
-PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
- HANDLE FileHandle, LPSTR FileName,
- LPSTR SymbolPath, DWORD ImageBase)
-{
- FIXME("(%p, %s, %s, 0x%08lx): stub\n",
- FileHandle, FileName, SymbolPath, ImageBase
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return NULL;
-}
-
-/***********************************************************************
- * StackWalk (IMAGEHLP.@)
- */
-BOOL WINAPI StackWalk(
- DWORD MachineType, HANDLE hProcess, HANDLE hThread,
- LPSTACKFRAME StackFrame, LPVOID ContextRecord,
- PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
- PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
- PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
- PTRANSLATE_ADDRESS_ROUTINE TranslateAddress)
-{
- FIXME(
- "(%ld, %p, %p, %p, %p, %p, %p, %p, %p): stub\n",
- MachineType, hProcess, hThread, StackFrame, ContextRecord,
- ReadMemoryRoutine, FunctionTableAccessRoutine,
- GetModuleBaseRoutine, TranslateAddress
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * UnDecorateSymbolName (IMAGEHLP.@)
- */
-DWORD WINAPI UnDecorateSymbolName(
- LPCSTR DecoratedName, LPSTR UnDecoratedName,
- DWORD UndecoratedLength, DWORD Flags)
-{
- FIXME("(%s, %s, %ld, 0x%08lx): stub\n",
- debugstr_a(DecoratedName), debugstr_a(UnDecoratedName),
- UndecoratedLength, Flags
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-/***********************************************************************
- * UnmapDebugInformation (IMAGEHLP.@)
- */
-BOOL WINAPI UnmapDebugInformation(
- PIMAGE_DEBUG_INFORMATION DebugInfo)
-{
- FIXME("(%p): stub\n", DebugInfo);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
diff --git a/dlls/imagehlp/imagehlp.spec b/dlls/imagehlp/imagehlp.spec
index ebe4fe8..f727d44 100644
--- a/dlls/imagehlp/imagehlp.spec
+++ b/dlls/imagehlp/imagehlp.spec
@@ -1,12 +1,12 @@
@ stdcall BindImage(str str str)
@ stdcall BindImageEx(long str str str ptr)
@ stdcall CheckSumMappedFile(ptr long ptr ptr)
-@ stdcall EnumerateLoadedModules(long ptr ptr)
-@ stdcall FindDebugInfoFile(str str str)
-@ stdcall FindExecutableImage(str str str)
+@ stdcall EnumerateLoadedModules(long ptr ptr) dbghelp.EnumerateLoadedModules
+@ stdcall FindDebugInfoFile(str str str) dbghelp.FindDebugInfoFile
+@ stdcall FindExecutableImage(str str str) dbghelp.FindExecutableImage
@ stdcall GetImageConfigInformation(ptr ptr)
@ stdcall GetImageUnusedHeaderBytes(ptr ptr)
-@ stdcall GetTimestampForLoadedLibrary(long)
+@ stdcall GetTimestampForLoadedLibrary(long) dbghelp.GetTimestampForLoadedLibrary
@ stdcall ImageAddCertificate(long ptr ptr)
@ stdcall ImageDirectoryEntryToData(ptr long long ptr) ntdll.RtlImageDirectoryEntryToData
@ stdcall ImageEnumerateCertificates(long long ptr ptr long)
@@ -19,43 +19,43 @@
@ stdcall ImageRvaToSection(ptr ptr long) ntdll.RtlImageRvaToSection
@ stdcall ImageRvaToVa(ptr ptr long ptr) ntdll.RtlImageRvaToVa
@ stdcall ImageUnload(ptr)
-@ stdcall ImagehlpApiVersion()
-@ stdcall ImagehlpApiVersionEx(ptr)
-@ stdcall MakeSureDirectoryPathExists(str)
+@ stdcall ImagehlpApiVersion() dbghelp.ImagehlpApiVersion
+@ stdcall ImagehlpApiVersionEx(ptr) dbghelp.ImagehlpApiVersionEx
+@ stdcall MakeSureDirectoryPathExists(str) dbghelp.MakeSureDirectoryPathExists
@ stdcall MapAndLoad(str str ptr long long)
-@ stdcall MapDebugInformation(long str str long)
+@ stdcall MapDebugInformation(long str str long) dbghelp.MapDebugInformation
@ stdcall MapFileAndCheckSumA(str ptr ptr)
@ stdcall MapFileAndCheckSumW(wstr ptr ptr)
@ stub MarkImageAsRunFromSwap
@ stdcall ReBaseImage(str str long long long long ptr ptr ptr ptr long)
@ stdcall RemovePrivateCvSymbolic(ptr ptr ptr)
@ stdcall RemoveRelocations(ptr)
-@ stdcall SearchTreeForFile(str str str)
+@ stdcall SearchTreeForFile(str str str) dbghelp.SearchTreeForFile
@ stdcall SetImageConfigInformation(ptr ptr)
@ stdcall SplitSymbols(str str str long)
-@ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr)
-@ stdcall SymCleanup(long)
-@ stdcall SymEnumerateModules(long ptr ptr)
-@ stdcall SymEnumerateSymbols(long long ptr ptr)
-@ stdcall SymFunctionTableAccess(long long)
-@ stdcall SymGetModuleBase(long long)
-@ stdcall SymGetModuleInfo(long long ptr)
-@ stdcall SymGetOptions()
-@ stdcall SymGetSearchPath(long str long)
-@ stdcall SymGetSymFromAddr(long long ptr ptr)
-@ stdcall SymGetSymFromName(long str ptr)
-@ stdcall SymGetSymNext(long ptr)
-@ stdcall SymGetSymPrev(long ptr)
-@ stdcall SymInitialize(long str long)
-@ stdcall SymLoadModule(long long str str long long)
-@ stdcall SymRegisterCallback(long ptr ptr)
-@ stdcall SymSetOptions(long)
-@ stdcall SymSetSearchPath(long str)
-@ stdcall SymUnDName(ptr str long)
-@ stdcall SymUnloadModule(long long)
+@ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr) dbghelp.StackWalk
+@ stdcall SymCleanup(long) dbghelp.SymCleanup
+@ stdcall SymEnumerateModules(long ptr ptr) dbghelp.SymEnumerateModules
+@ stdcall SymEnumerateSymbols(long long ptr ptr) dbghelp.SymEnumerateSymbols
+@ stdcall SymFunctionTableAccess(long long) dbghelp.SymFunctionTableAccess
+@ stdcall SymGetModuleBase(long long) dbghelp.SymGetModuleBase
+@ stdcall SymGetModuleInfo(long long ptr) dbghelp.SymGetModuleInfo
+@ stdcall SymGetOptions() dbghelp.SymGetOptions
+@ stdcall SymGetSearchPath(long str long) dbghelp.SymGetSearchPath
+@ stdcall SymGetSymFromAddr(long long ptr ptr) dbghelp.SymGetSymFromAddr
+@ stdcall SymGetSymFromName(long str ptr) dbghelp.SymGetSymFromName
+@ stdcall SymGetSymNext(long ptr) dbgelp.SymGetSymNext
+@ stdcall SymGetSymPrev(long ptr) dbgelp.SymGetSymPrev
+@ stdcall SymInitialize(long str long) dbghelp.SymInitialize
+@ stdcall SymLoadModule(long long str str long long) dbghelp.SymLoadModule
+@ stdcall SymRegisterCallback(long ptr ptr) dbghelp.SymRegisterCallback
+@ stdcall SymSetOptions(long) dbghelp.SymGetOptions
+@ stdcall SymSetSearchPath(long str) dbghelp.SymSetSearchPath
+@ stdcall SymUnDName(ptr str long) dbghelp.SymUnDName
+@ stdcall SymUnloadModule(long long) dbghelp.SymUnloadModule
@ stdcall TouchFileTimes(long ptr)
-@ stdcall UnDecorateSymbolName(str str long long)
+@ stdcall UnDecorateSymbolName(str str long long) dbghelp.UnDecorateSymbolName
@ stdcall UnMapAndLoad(ptr)
-@ stdcall UnmapDebugInformation(ptr)
+@ stdcall UnmapDebugInformation(ptr) dbghelp.UnmapDebugInformation
@ stdcall UpdateDebugInfoFile(str str str ptr)
@ stdcall UpdateDebugInfoFileEx(str str str ptr long)
diff --git a/dlls/imagehlp/imagehlp_main.c b/dlls/imagehlp/imagehlp_main.c
index 3803f2d..078ffe3 100644
--- a/dlls/imagehlp/imagehlp_main.c
+++ b/dlls/imagehlp/imagehlp_main.c
@@ -29,11 +29,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(imagehlp);
/**********************************************************************/
-
HANDLE IMAGEHLP_hHeap = NULL;
-static API_VERSION IMAGEHLP_ApiVersion = { 4, 0, 0, 5 };
-
/***********************************************************************
* DllMain (IMAGEHLP.init)
*/
@@ -56,65 +53,12 @@
}
/***********************************************************************
- * ImagehlpApiVersion (IMAGEHLP.@)
- */
-LPAPI_VERSION WINAPI ImagehlpApiVersion(VOID)
-{
- return &IMAGEHLP_ApiVersion;
-}
-
-/***********************************************************************
- * ImagehlpApiVersionEx (IMAGEHLP.@)
- */
-LPAPI_VERSION WINAPI ImagehlpApiVersionEx(LPAPI_VERSION AppVersion)
-{
- if(!AppVersion)
- return NULL;
-
- AppVersion->MajorVersion = IMAGEHLP_ApiVersion.MajorVersion;
- AppVersion->MinorVersion = IMAGEHLP_ApiVersion.MinorVersion;
- AppVersion->Revision = IMAGEHLP_ApiVersion.Revision;
- AppVersion->Reserved = IMAGEHLP_ApiVersion.Reserved;
-
- return AppVersion;
-}
-
-/***********************************************************************
- * MakeSureDirectoryPathExists (IMAGEHLP.@)
- */
-BOOL WINAPI MakeSureDirectoryPathExists(LPCSTR DirPath)
-{
- if (CreateDirectoryA(DirPath,NULL))
- return TRUE;
- if (GetLastError() == ERROR_ALREADY_EXISTS)
- {
- SetLastError(ERROR_SUCCESS);
- return TRUE;
- }
- return FALSE;
-}
-
-/***********************************************************************
* MarkImageAsRunFromSwap (IMAGEHLP.@)
* FIXME
* No documentation available.
*/
/***********************************************************************
- * SearchTreeForFile (IMAGEHLP.@)
- */
-BOOL WINAPI SearchTreeForFile(
- LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer)
-{
- FIXME("(%s, %s, %s): stub\n",
- debugstr_a(RootPath), debugstr_a(InputPathName),
- debugstr_a(OutputPathBuffer)
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
* TouchFileTimes (IMAGEHLP.@)
*/
BOOL WINAPI TouchFileTimes(
diff --git a/dlls/imagehlp/symbol.c b/dlls/imagehlp/symbol.c
deleted file mode 100644
index d71a843..0000000
--- a/dlls/imagehlp/symbol.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * IMAGEHLP library
- *
- * Copyright 1998 Patrik Stridvall
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <stdarg.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "winerror.h"
-#include "wine/debug.h"
-#include "imagehlp.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(imagehlp);
-
-/***********************************************************************
- * SymCleanup (IMAGEHLP.@)
- */
-BOOL WINAPI SymCleanup(HANDLE hProcess)
-{
- FIXME("(%p): stub\n", hProcess);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymEnumerateModules (IMAGEHLP.@)
- */
-
-BOOL WINAPI SymEnumerateModules(
- HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
- PVOID UserContext)
-{
- FIXME("(%p, %p, %p): stub\n",
- hProcess, EnumModulesCallback, UserContext
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymEnumerateSymbols (IMAGEHLP.@)
- */
-BOOL WINAPI SymEnumerateSymbols(
- HANDLE hProcess, DWORD BaseOfDll,
- PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext)
-{
- FIXME("(%p, 0x%08lx, %p, %p): stub\n",
- hProcess, BaseOfDll, EnumSymbolsCallback, UserContext
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymFunctionTableAccess (IMAGEHLP.@)
- */
-PVOID WINAPI SymFunctionTableAccess(HANDLE hProcess, DWORD AddrBase)
-{
- FIXME("(%p, 0x%08lx): stub\n", hProcess, AddrBase);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymGetModuleBase (IMAGEHLP.@)
- */
-DWORD WINAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr)
-{
- FIXME("(%p, 0x%08lx): stub\n", hProcess, dwAddr);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-/***********************************************************************
- * SymGetModuleInfo (IMAGEHLP.@)
- */
-BOOL WINAPI SymGetModuleInfo(
- HANDLE hProcess, DWORD dwAddr,
- PIMAGEHLP_MODULE ModuleInfo)
-{
- FIXME("(%p, 0x%08lx, %p): stub\n",
- hProcess, dwAddr, ModuleInfo
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymGetOptions (IMAGEHLP.@)
- */
-DWORD WINAPI SymGetOptions()
-{
- FIXME("(): stub\n");
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-/***********************************************************************
- * SymGetSearchPath (IMAGEHLP.@)
- */
-BOOL WINAPI SymGetSearchPath(
- HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength)
-{
- FIXME("(%p, %s, %ld): stub\n",
- hProcess, debugstr_an(szSearchPath,SearchPathLength), SearchPathLength
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymGetSymFromAddr (IMAGEHLP.@)
- */
-BOOL WINAPI SymGetSymFromAddr(
- HANDLE hProcess, DWORD dwAddr,
- PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol)
-{
- FIXME("(%p, 0x%08lx, %p, %p): stub\n",
- hProcess, dwAddr, pdwDisplacement, Symbol
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymGetSymFromName (IMAGEHLP.@)
- */
-BOOL WINAPI SymGetSymFromName(
- HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol)
-{
- FIXME("(%p, %s, %p): stub\n", hProcess, Name, Symbol);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymGetSymNext (IMAGEHLP.@)
- */
-BOOL WINAPI SymGetSymNext(
- HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
-{
- FIXME("(%p, %p): stub\n", hProcess, Symbol);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymGetSymPrev (IMAGEHLP.@)
- */
-
-BOOL WINAPI SymGetSymPrev(
- HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
-{
- FIXME("(%p, %p): stub\n", hProcess, Symbol);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymInitialize (IMAGEHLP.@)
- */
-BOOL WINAPI SymInitialize(
- HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess)
-{
- FIXME("(%p, %s, %d): stub\n",
- hProcess, debugstr_a(UserSearchPath), fInvadeProcess
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymLoadModule (IMAGEHLP.@)
- */
-
-BOOL WINAPI SymLoadModule(
- HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
- DWORD BaseOfDll, DWORD SizeOfDll)
-{
- FIXME("(%p, %p, %s, %s, %ld, %ld): stub\n",
- hProcess, hFile, debugstr_a(ImageName), debugstr_a(ModuleName),
- BaseOfDll, SizeOfDll
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymRegisterCallback (IMAGEHLP.@)
- */
-BOOL WINAPI SymRegisterCallback(
- HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
- PVOID UserContext)
-{
- FIXME("(%p, %p, %p): stub\n",
- hProcess, CallbackFunction, UserContext
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymSetOptions (IMAGEHLP.@)
- */
-DWORD WINAPI SymSetOptions(DWORD SymOptions)
-{
- FIXME("(0x%08lx): stub\n", SymOptions);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-/***********************************************************************
- * SymSetSearchPath (IMAGEHLP.@)
- */
-BOOL WINAPI SymSetSearchPath(HANDLE hProcess, LPSTR szSearchPath)
-{
- FIXME("(%p, %s): stub\n",
- hProcess, debugstr_a(szSearchPath)
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymUnDName (IMAGEHLP.@)
- */
-BOOL WINAPI SymUnDName(
- PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength)
-{
- FIXME("(%p, %s, %ld): stub\n",
- sym, UnDecName, UnDecNameLength
- );
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
-
-/***********************************************************************
- * SymUnloadModule (IMAGEHLP.@)
- */
-BOOL WINAPI SymUnloadModule(
- HANDLE hProcess, DWORD BaseOfDll)
-{
- FIXME("(%p, 0x%08lx): stub\n", hProcess, BaseOfDll);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
-}
diff --git a/include/imagehlp.h b/include/imagehlp.h
index 511abc1..5c37eec 100644
--- a/include/imagehlp.h
+++ b/include/imagehlp.h
@@ -104,6 +104,16 @@
#define SYMF_OMAP_GENERATED 0x00000001
#define SYMF_OMAP_MODIFIED 0x00000002
+/* 0x00000004 has been obsoleted */
+#define SYMF_REGISTER 0x00000008
+#define SYMF_REGREL 0x00000010
+#define SYMF_FRAMEREL 0x00000020
+#define SYMF_PARAMETER 0x00000040
+#define SYMF_LOCAL 0x00000080
+#define SYMF_CONSTANT 0x00000100
+#define SYMF_EXPORT 0x00000200
+#define SYMF_FORWARDER 0x00000400
+#define SYMF_FUNCTION 0x00000800
typedef enum {
SymNone,
@@ -112,7 +122,10 @@
SymPdb,
SymExport,
SymDeferred,
- SymSym /* .sym file */
+ SymSym,
+ SymDia,
+ SymVirtual,
+ NumSymTypes
} SYM_TYPE;
#define UNDNAME_COMPLETE 0x0000
@@ -244,6 +257,27 @@
KDHELP KdHelp;
} STACKFRAME, *LPSTACKFRAME;
+typedef struct _SOURCEFILE {
+ DWORD64 ModBase;
+ PCHAR FileName;
+} SOURCEFILE, *PSOURCEFILE;
+
+typedef struct _IMAGEHLP_STACK_FRAME
+{
+ DWORD InstructionOffset;
+ DWORD ReturnOffset;
+ DWORD FrameOffset;
+ DWORD StackOffset;
+ DWORD BackingStoreOffset;
+ DWORD FuncTableEntry;
+ DWORD Params[4];
+ DWORD Reserved[5];
+ DWORD Virtual;
+ DWORD Reserved2;
+} IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
+
+typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
+
typedef struct _IMAGEHLP_SYMBOL {
DWORD SizeOfStruct;
DWORD Address;
@@ -290,6 +324,33 @@
ULONG SelectedSymbol;
} IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
+#define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
+#define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER
+#define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL
+#define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL
+#define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER
+#define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL
+#define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT
+#define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION
+
+typedef struct _SYMBOL_INFO {
+ ULONG SizeOfStruct;
+ ULONG TypeIndex;
+ ULONG64 Reserved[2];
+ ULONG info;
+ ULONG Size;
+ ULONG64 ModBase;
+ ULONG Flags;
+ ULONG64 Value;
+ ULONG64 Address;
+ ULONG Register;
+ ULONG Scope;
+ ULONG Tag;
+ ULONG NameLen;
+ ULONG MaxNameLen;
+ CHAR Name[1];
+} SYMBOL_INFO, *PSYMBOL_INFO;
+
/***********************************************************************
* Callbacks
*/
@@ -299,6 +360,14 @@
ULONG Va, ULONG Parameter
);
+typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(
+ PSYMBOL_INFO pSymInfo, DWORD SymbolSize, PVOID UserContext
+);
+
+typedef BOOL (CALLBACK *PSYM_ENUMSOURCFILES_CALLBACK)(
+ PSOURCEFILE pSourceFile, PVOID UserContext
+);
+
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
);
@@ -481,6 +550,14 @@
HANDLE hProcess, DWORD BaseOfDll,
PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
);
+BOOL WINAPI SymEnumSourceFiles(
+ HANDLE hProcess, DWORD ModBase, LPSTR Mask,
+ PSYM_ENUMSOURCFILES_CALLBACK cbSrcFiles, PVOID UserContext
+);
+BOOL WINAPI SymEnumSymbols(
+ HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask,
+ PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
+);
PVOID WINAPI SymFunctionTableAccess(
HANDLE hProcess, DWORD AddrBase
);
@@ -513,7 +590,7 @@
BOOL WINAPI SymInitialize(
HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess
);
-BOOL WINAPI SymLoadModule(
+DWORD WINAPI SymLoadModule(
HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
DWORD BaseOfDll, DWORD SizeOfDll
);
@@ -521,6 +598,10 @@
HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
PVOID UserContext
);
+DWORD WINAPI SymSetContext(
+ HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
+ PIMAGEHLP_CONTEXT Context
+);
DWORD WINAPI SymSetOptions(
DWORD SymOptions
);